Repository navigation
Closed
Description
Summary
docs/operations/backup-classes.md documents overriding the cozy-default backup S3 coordinates (backupStorage.endpoint, region, systemSecretName, etc.) by setting spec.components.backupstrategy-controller.values on the Package cozystack.cozystack-platform CR. This override has no effect: the platform chart never propagates those values to the backupstrategy-controller component, so an admin cannot point the default backup flow at an external or TLS S3 endpoint through the documented path.
Evidence
- Documented override (does not work):
docs/operations/backup-classes.md(section "Admin overrides forcozy-default") instructs:kind: Package metadata: name: cozystack.cozystack-platform spec: components: backupstrategy-controller: values: backupStorage: endpoint: ...
- The
cozystack.cozystack-platformPackage exposes exactly one component,platform(the platform chart itself), seepackages/core/installer/example/platform.yaml(spec.components.platform.values). There is nobackupstrategy-controllercomponent under this PackageSource, so the operator silently ignores it. - The platform chart renders the child
Package cozystack.backupstrategy-controllervia thecozystack.platform.package.defaulthelper with no components argument:packages/core/platform/templates/bundles/system.yaml({{include "cozystack.platform.package.default" (list "cozystack.backupstrategy-controller" $) }}). packages/core/platform/templates/_helpers.tpl: the.defaulthelper callscozystack.platform.packagewith only three positional args, so$componentsstays empty and the rendered child Package omitsspec.componentsentirely ({{- if $components }}gate). Nothing in the platform chart reads.Values.components.backupstrategy-controller.
Impact
- Admins running against an external S3 or the in-cluster TLS SeaweedFS cannot set
backupStorage.endpoint(or region / systemSecretName) through the documented supported override path. - The only working override is patching the child
Package cozystack.backupstrategy-controllerwithspec.components.backupstrategy-controller.values(the operator does read child-Package components), but this is undocumented, and the platform helm-reconcile re-renders that child Package without acomponentsblock, risking that admin patch being reverted.
Proposed fix
Pick one:
- Wire the platform chart to pass a
backupstrategy-controllercomponents block (analogous to howmonitoring-agentsis rendered viacozystack.platform.packagewith an explicit components dict) sospec.components.backupstrategy-controller.valueson thecozystack-platformPackage actually reaches the child HelmRelease; or - Correct the documentation to point at the child
Package cozystack.backupstrategy-controlleroverride path, and confirm that path survives platform helm-reconcile (protect it from being pruned by the emptycomponentsre-render).
Reacted by dosubot
Metadata
Metadata
Assignees
Labels
No labels
Activity
docs(operations): correct the cozy-default override path and address …
docs(operations): correct the cozy-default override path and address …
fix(backup): simplify UX with default backupclass and correct the adm…
fix(platform): forward backupStorage overrides to the backupstrategy-…
fix(platform): forward backupStorage overrides to the backupstrategy-…
fix(platform): forward backupStorage overrides to the backupstrategy-…
fix(platform): forward backupStorage overrides to the backupstrategy-…
fix(platform): forward backupStorage overrides to the backupstrategy-…