Commit Graph

27 Commits

Author SHA1 Message Date
d.viti
e995482bfd Enable Kubernetes Service Discovery for API7 Gateway upstreams
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 9s
Build and Deploy / build-api (push) Successful in 43s
Build and Deploy / build-web (push) Successful in 1m1s
Configured API7 Gateway to use Kubernetes Service Discovery instead of
static upstream nodes. This enables dynamic discovery of backend Pods
through the Kubernetes API.

Benefits:
- Automatic scaling: New Pods are automatically added to upstream pool
- Health checks: Only healthy Pods receive traffic
- Zero downtime: Automatic updates during deployments and rollouts
- No manual upstream configuration needed

Changes:
- Updated configmap-adc.yaml to use discovery_type: kubernetes
- Service discovery queries Kubernetes API for Pod endpoints
- Falls back to static nodes if serviceDiscovery.enabled is false
- Added documentation in values.yaml explaining the feature

The RBAC permissions (services, endpoints watch) were already configured
in rbac-adc.yaml, so no additional permissions are needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 15:24:29 +02:00
d.viti
f04862f6f7 Configure Ingress to route traffic through API7 Gateway
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 46s
Build and Deploy / build-web (push) Successful in 1m7s
Modified Ingress configuration to route all traffic through the API7
Gateway (gateway-0-1759393614-gateway) instead of directly to application
services. This enables API7's advanced routing, rate limiting, CORS, and
other gateway features.

Changes:
- Updated ingress.yaml template to support gateway backend routing
- Modified values.yaml to route traffic to API7 Gateway service
- Disabled web and api services (now optional) as routing is handled by API7
- Removed nginx.ingress.kubernetes.io/rewrite-target annotation
- Maintained backward compatibility with legacy service-based routing

The Ingress now directs traffic to the API7 Gateway which handles all
routing logic defined in the ADC configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 15:18:51 +02:00
d.viti
305e0cc848 Update demo URLs to use commandware.it instead of api7-demo.commandware.it
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 9s
Build and Deploy / build-api (push) Successful in 48s
Build and Deploy / build-web (push) Successful in 1m5s
2025-10-09 12:25:50 +02:00
d.viti
29ef0c65e5 Fix global_rules section to be conditionally included
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 40s
Build and Deploy / build-web (push) Successful in 1m6s
Made the global_rules section conditional on logging being enabled.
Previously, when logging was disabled, global_rules was rendered as
an empty object (null), causing a lint error:
"Invalid input: expected record, received null at global_rules"

Now the entire global_rules section is only included when there are
actual rules to add.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 19:36:10 +02:00
d.viti
10b3c2a480 Remove prometheus global rule causing plugin not found error
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 1m33s
Build and Deploy / build-web (push) Successful in 3m9s
Build and Deploy / build-api (push) Successful in 3m12s
Removed the prometheus-metrics global rule configuration which was
causing "custom plugin (prometheus-metrics) not found" error.

API7 Enterprise doesn't support prometheus as a global rule plugin
in this configuration format. Prometheus metrics can be configured
differently if needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 19:22:44 +02:00
d.viti
8be1f85718 Fix CORS plugin configuration for API7 Enterprise
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 2m22s
Build and Deploy / build-api (push) Successful in 4m6s
Build and Deploy / build-web (push) Successful in 4m33s
Changed CORS plugin array values to comma-separated strings:
- allow_origins: from JSON array to comma-separated string
- allow_methods: from JSON array to comma-separated string
- allow_headers: from JSON array to comma-separated string
- expose_headers: from JSON array to comma-separated string

API7 Enterprise expects string values with comma-separated items,
not JSON arrays. This fixes the validation error:
"Invalid type. Expected: string, given: array"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 18:58:09 +02:00
d.viti
80ffa5e4fd Fix API7 Enterprise admin URL to use HTTPS on port 7443
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 19s
Build and Deploy / build-api (push) Successful in 1m2s
Build and Deploy / build-web (push) Successful in 1m29s
Changed adminUrl to use HTTPS instead of HTTP:
- Before: http://api7ee3-0-1759339083-dashboard:7080
- After: https://api7ee3-0-1759339083-dashboard:7443

Also enabled tlsSkipVerify for the dashboard's self-signed certificate.

Testing revealed that:
- Port 7080 HTTP doesn't work (pod listens on 7081 localhost only)
- Port 7443 HTTPS is the correct admin API endpoint
- Self-signed certificate requires TLS verification skip

This fixes the ADC sync job 404 errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 18:48:20 +02:00
d.viti
aeafd8c035 Add TLS skip verify support to ADC sync job
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 26s
Build and Deploy / build-api (push) Successful in 1m8s
Build and Deploy / build-web (push) Successful in 1m31s
Added conditional --tls-skip-verify flag to ADC sync job arguments.
This flag is controlled by .Values.api7.adc.tlsSkipVerify and allows
ADC to connect to API7 Enterprise dashboard with self-signed certificates.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 18:40:46 +02:00
d.viti
a82f9d81d1 Simplify API7 Enterprise admin URL to use short service name
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 9s
Build and Deploy / build-api (push) Successful in 46s
Build and Deploy / build-web (push) Successful in 1m3s
Changed adminUrl from fully qualified domain name to short service name:
- Before: http://api7ee3-0-1759339083-dashboard.api7ee.svc.cluster.local:7080
- After: http://api7ee3-0-1759339083-dashboard:7080

The short name works within the same namespace and is simpler to manage.
This fixes the ADC sync job which was failing with 404 errors.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 18:36:48 +02:00
d.viti
6f8e327210 Fix API7 Enterprise admin URL to use dashboard service
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 16s
Build and Deploy / build-api (push) Has been cancelled
Build and Deploy / build-web (push) Has been cancelled
Changed adminUrl from dp-manager:7900 to dashboard:7080 for API7
Enterprise backend. The dp-manager service is for APISIX, while
API7EE requires the dashboard service which exposes the admin API.

This fixes the 404 errors when ADC tries to fetch configuration:
- GET /api/version
- GET /api/gateway_groups
- GET /api/schema/core

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 18:00:28 +02:00
d.viti
05b013d378 Fix ADC global_rules format from array to object
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 9s
Build and Deploy / build-api (push) Successful in 49s
Build and Deploy / build-web (push) Successful in 1m3s
Changed global_rules from array format (- id: name) to object format
(name:) to match ADC schema requirements. This fixes the lint error:
"Invalid input: expected record, received array at global_rules"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-08 17:51:45 +02:00
d.viti
104f7a21ff Simplify adc-sync job to use ADC container and args
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 16s
Build and Deploy / build-api (push) Successful in 59s
Build and Deploy / build-web (push) Successful in 1m24s
2025-10-08 16:05:27 +02:00
d.viti
34ed68cb04 Update ADC install script to export PATH and improve logging
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 46s
Build and Deploy / build-api (push) Successful in 1m45s
Build and Deploy / build-web (push) Successful in 2m5s
2025-10-08 15:59:20 +02:00
d.viti
2255a469a4 Update ADC installation to use specific version and verify output
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Build and Deploy / build-api (push) Failing after 17m43s
Helm Chart Build / build-helm (push) Failing after 17m51s
Build and Deploy / build-web (push) Successful in 19m23s
2025-10-08 15:24:47 +02:00
d.viti
27118b21f8 Use debian:bookworm-slim image for adc-sync job
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 54s
Build and Deploy / build-api (push) Successful in 45s
Build and Deploy / build-web (push) Successful in 1m10s
Update dependency installation logic to support Debian, Alpine, and
RHEL/CentOS distributions. Add error handling for unsupported Linux
distributions.
2025-10-08 15:09:20 +02:00
d.viti
741117dab8 Refactor ADC install and usage in job-adc-sync script
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 1m10s
Build and Deploy / build-api (push) Successful in 2m20s
Build and Deploy / build-web (push) Successful in 2m36s
Simplify dependency installation and ADC binary setup. Replace ADC
command lookup logic with direct usage after installation.
2025-10-08 13:55:58 +02:00
d.viti
90c6f6fe62 Make ADC command path detection more robust in job script
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Build and Deploy / build-web (push) Failing after 1m15s
Helm Chart Build / build-helm (push) Successful in 1m24s
Build and Deploy / build-api (push) Successful in 2m2s
2025-10-08 13:52:37 +02:00
d.viti
b2e0d5bd10 Refactor Helm chart for API7EE: clarify gateway requirements, improve
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 31s
Build and Deploy / build-api (push) Successful in 1m14s
Build and Deploy / build-web (push) Successful in 1m36s
ADC config templating, and enhance gateway health checks
2025-10-08 13:44:01 +02:00
d.viti
c0832ff59b Add private key config to certificate template and values
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 50s
Build and Deploy / build-web (push) Successful in 1m4s
2025-10-08 13:19:57 +02:00
d.viti
0935010f89 Add enabled flags for health probes in web and api deployments
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Build and Deploy / build-web (push) Failing after 7s
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 42s
2025-10-08 13:04:15 +02:00
d.viti
7ca15fe1a5 Add readiness endpoint and clear adminKey in Helm values
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 43s
Build and Deploy / build-web (push) Successful in 1m1s
2025-10-08 12:41:15 +02:00
d.viti
1b31601543 Rewrite and expand all documentation for API7EE demo platform
All checks were successful
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 46s
Build and Deploy / build-web (push) Successful in 1m8s
2025-10-07 19:09:40 +02:00
d.viti
d17e356fcd Simplify Docker build workflow and update routing rules
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-web (push) Failing after 45s
Build and Deploy / build-api (push) Successful in 53s
2025-10-07 18:31:56 +02:00
d.viti
2d695ba361 Update ADC config to handle /docs route separately
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Build and Deploy / build-web (push) Failing after 8s
Helm Chart Build / build-helm (push) Successful in 8s
Build and Deploy / build-api (push) Successful in 25s
Add a new route for /docs and /docs/* with higher priority. Exclude
/docs from the default route's URI regex to prevent overlap.
2025-10-07 18:15:30 +02:00
d.viti
ed660dce5a Add LLM endpoints, web frontend, and rate limiting config
Some checks failed
Helm Chart Build / lint-only (push) Has been skipped
Helm Chart Build / build-helm (push) Successful in 9s
Build and Deploy / build-api (push) Successful in 33s
Build and Deploy / build-web (push) Failing after 41s
- Added OpenAI-compatible LLM endpoints to API backend - Introduced web
frontend with Jinja2 templates and static assets - Implemented API proxy
routes in web service - Added sample db.json data for items, users,
orders, reviews, categories, llm_requests - Updated ADC and Helm configs
for separate AI and standard rate limiting - Upgraded FastAPI, Uvicorn,
and added httpx, Jinja2, python-multipart dependencies - Added API
configuration modal and client-side JS for web app
2025-10-07 17:29:12 +02:00
d.viti
e156b7c7a1 Refactor ADC config to use AI rate limiting for /api route 2025-10-07 15:01:22 +02:00
d.viti
f9d529ac87 Rename Helm chart to api7ee-demo-k8s
- Changed chart name from api7ee to api7ee-demo-k8s in Chart.yaml
- Renamed helm/api7ee directory to helm/api7ee-demo-k8s
- Updated all references in build.yml workflow
- Updated all references in helm-release.yml workflow
- Updated main README.md with new chart name
- Updated Helm chart README with new chart name
- Verified all old references have been replaced
- Chart packages correctly as api7ee-demo-k8s-{version}.tgz
2025-10-03 02:31:23 +02:00