This file provides guidance to coding agents (e.g. Claude Code, claude.ai/code) when working with code in this repository.
Go module go.bytebuilders.dev/installer — the umbrella Helm chart repo for the AppsCode Container Engine (ACE) platform. Bundles every ACE component (acaas, ace, ace-installer, accounts-ui, acerproxy, aceshifter, billing, billing-ui, …) plus all the surrounding install bundles. Also exposes a Go API package describing chart values for downstream programs.
Sibling pattern to kubeops.dev/installer, kubevault.dev/installer, etc. — but covering the full ACE catalog rather than a single product family.
charts/— one subdirectory per Helm chart. Standard layout (Chart.yaml,values.yaml,templates/, generateddoc.yaml/README.md/values.openapiv3_schema.yaml).apis/installer/v1alpha1/— Go types backing chart values. Used for OpenAPI / values-schema generation and as a typed surface for downstream programs.catalog/— image catalog driven bykmodules.xyz/image-packer.cmd/,pkg/— codegen + installer helpers.hack/scripts/— release / codegen scripts (update-catalog.sh,update-chart-dependencies.sh,import-crds.sh,ct.sh, etc.).options.yaml,features.md,DEVELOPMENT.md— feature catalog + dev guide.tests/,lintconf.yaml— chart-testing setup.vendor/— checked-in Go deps.
make gen— full regen (clientset + manifests + values schemas + chart docs). Run afterapis/installer/v1alpha1/*_types.gochanges.make manifests— CRDs / values schemas / chart docs.make gen-values-schema— regeneratevalues.openapiv3_schema.yaml.make gen-chart-doc— per-chartREADME.md.make update-charts— refresh chart metadata.make refresh—gen update-catalog fmt. ALWAYS run this before opening a PR so generated files are current.make fmt,make lint,make unit-tests/make test— standard.make ct— chart-testing.make verify— module-tidy verification.make add-license/make check-license— manage license headers.
Helpers (invoked outside Make):
./hack/scripts/update-catalog.sh— regeneratecatalog/fromimagelist.yaml../hack/scripts/import-crds.sh— pull CRDs from sibling repos into chartcrds/dirs.
-
Module path is
go.bytebuilders.dev/installer(vanity URL); imports must use that. -
Edit
apis/installer/v1alpha1/*_types.goto change a chart's values surface, then runmake genso the generated clientset,values.openapiv3_schema.yaml, and per-chartREADME.mdstay in sync. -
Do not hand-edit
zz_generated.*.go, chartREADME.mdfiles,values.openapiv3_schema.yaml, or anything undercatalog/exceptimagelist.yaml. -
License:
LICENSE.md. Sign off commits (git commit -s). -
Vendor directory is checked in; keep
go mod tidy && go mod vendorclean. -
CRDs for charts are imported via
import-crds.sh; don't hand-authorcharts/*/crds/*.yaml. -
-certifiedcharts mirror the standard charts for Red Hat certification.charts/ace-installer-certifiedandcharts/ace-installer-certified-crdsare generated — do not edit them directly. After changingcharts/ace-installer, regenerate them with:rm -rf charts/ace-installer-certified charts/ace-installer-certified-crds chart-packer crd-less --input charts/ace-installer --output charts chart-packer crd-only --input charts/ace-installer --output charts make gen-chart-doc
-
Adding a new chart: create
charts/<name>/, add a values-schema Go type underapis/installer/v1alpha1/, list images inimagelist.yaml, then runmake gen.