Skip to content

[FEATURE] ate-setup bootstrap command and keys-only bootstrap Job #3676

Open

Description

Implements the install bootstrap contract (#3175). Adds an in-cluster ate-setup bootstrap Job that creates missing key pools and runs the database safety guards, so the kustomize, Helm and provider install paths don't need ate-setup on the operator's machine.

Tracks "Add a keys-only bootstrap Job" in the Publish the install as kustomize bases workstream of the Extensible Install Roadmap.

Current state (0b635b80): ate-setup creates the key pools imperatively from the operator's machine (cmd/ate-setup/internal/steps/create.go). There is no bootstrap subcommand.

Required changes

  • ate-setup bootstrap:
    • creates the missing key-pool Secrets and derived certificates listed in [FEATURE] Install Bootstrap #3175;
    • refreshes the published JWT key set when it is stale;
    • creates k8s-credential-provider-namespace-policy if it is absent;
    • refuses forbidden database switches;
    • never rotates or replaces existing keys.
  • Arguments: --database-mode=bundled|external and --namespace. Exit codes: 0 success, 1 unexpected error, 2 guard refused.
  • Manifests for release/bootstrap/:
    • the namespaces;
    • a ServiceAccount;
    • RBAC: get and create on Secrets and ConfigMaps in both namespaces, update on actor-id-jwt-pool only, get on ate-api-server-secret-envvars, no pods/exec;
    • a Job named ate-bootstrap-<version> with ttlSecondsAfterFinished.
  • Publish the ate-setup image, or a dedicated bootstrap image. It is not in the released image set today.
  • ate-setup deploy runs the same code path, so both install paths create keys the same way.
  • Resolve the open points on [FEATURE] Install Bootstrap #3175 first:

Dependencies: #3175 contract agreed; release coordinates for the image (#3664).

Enforcement

Parent Issue: #3169

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions