Skip to content

select-install: backup round-trip suites need seaweedfs/bucket/backup-controller in their PackageSource closure #3508

Open

Description

Prerequisite for the hack/select-install.sh / test-minimal work in #2847 (Track A, whose own issue #3277 is closed).

packages/core/platform/sources/clickhouse-application.yaml declares dependsOn of only cozystack.clickhouse-operator + cozystack.cozystack-engine. But the chainsaw backup round-trip in that suite (clickhouse-2-backup-roundtrip) additionally needs seaweedfs, the bucket app and the backup/backupstrategy controllers: it provisions an apps.cozystack.io/Bucket, reads its COSI BucketInfo, copies the seaweedfs CA, and drives BackupJob / RestoreJob.

The same is true of mariadb-2-backup-roundtrip and postgres-2-backup-roundtrip — this is not clickhouse-specific.

Why nothing is broken today: CI installs the full platform, so select-install.sh never actually narrows the install; the closure it computes is unused. select-install.sh --validate only checks that every suite maps to a PackageSource, not that the mapped source's closure covers what the suite exercises — so it stays green.

Why it matters later: the moment test-minimal installs only a suite's computed closure, these three round-trips get a cluster with no object store and no backup controllers, and fail on a missing Bucket / CRD rather than on anything they mean to test. That failure will look like a broken test, not a missing dependency edge.

Options (a decision for whoever lands test-minimal, which is why this is an issue and not a PR):

  • add the backup-flow packages to dependsOn of the three *-application sources — simple, but overstates the dependency for everyone who does not run the round-trip (the plain clickhouse / mariadb / postgres Tests do not need them);
  • model per-suite rather than per-source dependencies, so a suite dir can declare extra packages — the "modelling multi-package suites is deferred to the test-minimal work" note already in hack/select-install.sh;
  • or teach --validate to fail when a suite's closure omits something the suite demonstrably uses, so the gap is caught rather than documented.

Surfaced by IvanHunters while reviewing #3385 and explicitly noted there as pre-existing and not introduced by that PR.

Activity

  1. added
    kind/bugCategorizes issue or PR as related to a bug
    area/testingIssues or PRs related to testing (e2e, bats, unit tests)
    triage/acceptedIndicates an issue is ready to be actively worked on
    priority/backlogGeneral backlog priority. Lower than priority/important-longterm
    and removed
    triage/needs-triageIndicates an issue needs triage by a maintainer
    on Sep 23, 2026
  2. androndo commented on Oct 5, 2026

    @androndo
    ContributorAuthor

    Status check against current main (0639ce3): the gap is unchanged and has grown.

    • hack/select-install.sh is still not invoked by any workflow, so CI installs the full platform and the computed closure stays unused. Its "Modelling multi-package suites is deferred to the test-minimal work" note is still in place.
    • The issue named three suites. Nine suites now carry a backup round-trip that needs seaweedfs, the bucket app and the backup controllers outside their source's dependsOn: clickhouse, etcd, kafka, kafka-metadata, mariadb, mongodb, postgres, rabbitmq, redis.
    • fix(backups): prepare standalone VMDisk restore targets and add VM backup/restore e2e round-trips #3427 adds a tenth, vminstance. Its round-trips also need Velero, and vm-instance-application depends only on networking, kubevirt and cozystack-engine.

    No change is planned here for now. Which of the three options fits depends on how test-minimal (#2847) installs a suite, so this waits for that work and is resolved there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/testingIssues or PRs related to testing (e2e, bats, unit tests)kind/bugCategorizes issue or PR as related to a bugpriority/backlogGeneral backlog priority. Lower than priority/important-longtermtriage/acceptedIndicates an issue is ready to be actively worked on

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions