feat(aisix-cloud): add AISIX private-deployment control-plane chart#298
Conversation
Publishes the AISIX control plane (cp-api, dp-manager, dashboard) as a public Helm chart so users can `helm install api7/aisix-cloud` from https://charts.api7.ai (#789). Ported from the AISIX-Cloud repo's internal chart, with the image tags defaulting to the chart appVersion (and the DP image to ghcr.io/api7/aisix:<appVersion>) so a versioned install pulls matching release images. Uses the aisix-cp-* image names. Added to ct lint and helm-docs; install coverage lives in the AISIX-Cloud ci-helm pipeline.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✅ Files skipped from review due to trivial changes (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a complete new Changesaisix-cloud Helm Chart
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes 🚥 Pre-merge checks | ✅ 5 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@charts/aisix-cloud/templates/_helpers.tpl`:
- Around line 131-143: The aisix-cloud.pgSecretName template definition does not
check for postgresql.auth.existingSecret when postgresql.builtin is true,
causing the template to always return a generated secret name and ignore any
existing secret the user has configured. In the builtin branch (the first if
block starting with postgresql.builtin), add a condition to check if
postgresql.auth.existingSecret is set and return that value before falling back
to checking postgresql.fullnameOverride or the default generated PostgreSQL
secret name.
In `@charts/aisix-cloud/templates/NOTES.txt`:
- Line 33: The NOTES.txt file contains a hardcoded reference to
ghcr.io/api7/aisix:dev which uses the mutable dev tag instead of a versioned
release tag. Replace the :dev tag suffix with a Helm template variable that
references the actual chart version or app version (typically using {{
.Chart.AppVersion }} or {{ .Chart.Version }}) to ensure users are directed to
stable, versioned images that align with the chart's versioned-install contract.
In `@charts/aisix-cloud/templates/ui-deployment.yaml`:
- Line 4: The metadata.name field in the ui-deployment.yaml file contains an
unquoted Helm template expression that can cause YAML parsing failures when
tooling reads the template before Helm rendering. Wrap the entire value of the
name field (which contains the include "aisix-cloud.fullname" helper and the
"-ui" suffix) in double quotes to properly escape the template expression and
prevent YAML parser breakage.
In `@charts/aisix-cloud/templates/ui-service.yaml`:
- Line 4: The metadata.name field in the ui-service.yaml template contains an
unquoted templated value that poses a YAML parsing risk. Wrap the templated
value `{{ include "aisix-cloud.fullname" . }}-ui` in quotes (either single or
double) to ensure proper YAML parsing and compatibility with static analysis
tools. This change should be applied to the name field in the metadata section
to match the same quoting pattern that should be used for templated values.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 67e91771-78d6-435a-8c86-c8a240ea1852
⛔ Files ignored due to path filters (1)
charts/aisix-cloud/Chart.lockis excluded by!**/*.lock
📒 Files selected for processing (18)
.github/workflows/ci.yamlAGENTS.mdcharts/aisix-cloud/.helmignorecharts/aisix-cloud/Chart.yamlcharts/aisix-cloud/README.mdcharts/aisix-cloud/charts/postgresql-12.12.10.tgzcharts/aisix-cloud/templates/NOTES.txtcharts/aisix-cloud/templates/_helpers.tplcharts/aisix-cloud/templates/api-deployment.yamlcharts/aisix-cloud/templates/api-service.yamlcharts/aisix-cloud/templates/dpm-deployment.yamlcharts/aisix-cloud/templates/dpm-service.yamlcharts/aisix-cloud/templates/external-db-secret.yamlcharts/aisix-cloud/templates/secret.yamlcharts/aisix-cloud/templates/serviceaccount.yamlcharts/aisix-cloud/templates/ui-deployment.yamlcharts/aisix-cloud/templates/ui-service.yamlcharts/aisix-cloud/values.yaml
…age in NOTES - pgSecretName: in builtin mode, resolve to postgresql.auth.existingSecret when set so app pods reference the BYO secret instead of the (uncreated) Bitnami-generated name. - NOTES.txt: drop hardcoded :dev DP image, default to appVersion.
Part of api7/AISIX-Cloud#789 (AISIX CP private/offline deployment).
Publishes the AISIX control plane (cp-api, dp-manager, dashboard) as a public Helm chart so users can install it from
https://charts.api7.ai:Details
api7/AISIX-Cloudhelm/aisix-cloud(that internal copy stays the source of truth — it's what the dev ArgoCD app + ci-helm deploy). Uses theaisix-cp-*image names.ghcr.io/api7/aisix:<appVersion>), so a versioned install pulls matching release images instead of:dev.ingress-controller/developer-portal-fe): chart0.1.0, appVersion0.1.0.ct lint+ helm-docs (README generated). Not added toct install— there's no published release image at the appVersion yet, and real install coverage already runs in the AISIX-Cloudci-helmpipeline (builds images from source + installs into kind).Merge ordering
This chart references
aisix-cp-*:0.1.0/aisix:0.1.0images, which don't exist until the firstv0.1.0release of the data-plane + control-plane repos. Merge this after that release so the published chart resolves to real images. (CI here only lints/renders, so it's green regardless.)Summary by CodeRabbit
New Features
Documentation
Chores