Skip to content

docs(backup): documented cozy-default endpoint override via cozystack-platform Package has no effect #3245

Description

@IvanHunters

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 for cozy-default") instructs:
    kind: Package
    metadata:
      name: cozystack.cozystack-platform
    spec:
      components:
        backupstrategy-controller:
          values:
            backupStorage:
              endpoint: ...
  • The cozystack.cozystack-platform Package exposes exactly one component, platform (the platform chart itself), see packages/core/installer/example/platform.yaml (spec.components.platform.values). There is no backupstrategy-controller component under this PackageSource, so the operator silently ignores it.
  • The platform chart renders the child Package cozystack.backupstrategy-controller via the cozystack.platform.package.default helper 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 .default helper calls cozystack.platform.package with only three positional args, so $components stays empty and the rendered child Package omits spec.components entirely ({{- 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-controller with spec.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 a components block, risking that admin patch being reverted.

Proposed fix

Pick one:

  • Wire the platform chart to pass a backupstrategy-controller components block (analogous to how monitoring-agents is rendered via cozystack.platform.package with an explicit components dict) so spec.components.backupstrategy-controller.values on the cozystack-platform Package actually reaches the child HelmRelease; or
  • Correct the documentation to point at the child Package cozystack.backupstrategy-controller override path, and confirm that path survives platform helm-reconcile (protect it from being pruned by the empty components re-render).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions