Extend Magic Stick¶
Adding A Cluster Base¶
- Add the base under the narrowest existing ownership path.
- Reuse existing Kustomize and HelmRelease patterns.
- Add Flux health checks only when later waves require the resource to be ready.
- Keep values generic and safe by default.
- Render both the standalone base and any aggregate base that imports it.
- Update architecture.md, configuration.md, or gitops-overlays.md when the public contract changes.
Adding A Module¶
- Add or reuse a public-safe Kustomize base.
- Add a catalog entry in
magic-cluster/platform/magicstick-operator/module-catalog.yaml. - Choose a stable generated Flux
kustomizationName. - Document required CRDs and dependencies.
- Update the module catalog and docs when the module is user-selectable.
- Render
magic-cluster/platform/magicstick-operatorand any touched base.
Adding An App Variable¶
- Use a documented
AI_APPLIANCE_*name. - Provide a safe default with Flux substitution.
- Quote YAML strings when values may contain special characters.
- Add the variable to configuration.md.
- Add release-review coverage to public-release-checklist.md.
For module storage values, prefer ModuleActivation.spec.parameters plus an
operator-managed Flux substitution over installer or USB metadata.
Adding A Secret¶
Prefer one of these patterns:
- generated Secret with secret-generator annotations
valueFrom.secretKeyRefpointing to a Secret supplied by a private overlay- external secret manager integration outside this public repository
Never commit real secret data. When debugging, avoid copying decoded Secret values into logs, issues, commits, or docs.
Adding An Operator-Backed App¶
Use two layers:
magic-cluster/platform/ai/<name>-operatorfor the operator, HelmRepository, HelmRelease, namespace, CRDs, and operator RBAC patches.magic-cluster/apps/instances/<name>for the AppInstance Helm chart.- an entry in
magicstick-app-catalogdeclaring the chart, required modules, and required CRDs.
This keeps CRD availability in a module base and app lifecycle in runtime CRs.