Skip to content

[FEATURE] Establish the ate-setup provider interface for extension #3189

Description

The command-line surface provider installers call, with its deprecation rules.

Owner: provider-neutral core workstream (#3161, removals) and kustomize release workstream (#3169, additions). Consumers: GKE workstream (ai-on-gke/substrate-gke#154), operators' scripts.

Specification.

Purpose Flag Environment Status
Kubeconfig --kubeconfig KUBECONFIG Stable
Kube context --context KUBECTL_CONTEXT Stable; required for provider installers
Expected JWT issuer --ateapi-expected-jwt-issuer EXPECTED_JWT_ISSUER Stable; provider installers set it explicitly
Actor JWT issuer --actor-jwt-issuer ACTOR_JWT_ISSUER Stable; https://<host> with no path
Image repository and tag --image-repo, --image-tag ATE_IMAGE_REPO, ATE_IMAGE_TAG Stable
Cluster size --cluster-size ATE_INSTALL_CLUSTER_SIZE Stable; size10 selects sizing-large
Components --component none (PR #3651 proposes ATE_INSTALL_COMPONENTS) New (#3167)
Database connections none ATE_API_POSTGRES_READ_WRITE_CONNECTION_STRING, ATE_API_POSTGRES_OWNER_CONNECTION_STRING Stable; secret, environment only
Postgres server CA --ateapi-postgres-server-ca-file ATE_API_POSTGRES_SERVER_CA_FILE Stable
Credential provider --credential-provider ATE_CREDENTIAL_PROVIDER JSON object or array today (#3409); becomes a manifest setting (#3172)
GCP project, cluster name, cluster location --gcp-project-id, --gcp-cluster-name, --gcp-cluster-location PROJECT_ID, CLUSTER_NAME, CLUSTER_LOCATION Removed
Cloud SQL instance, service account, IAM auth, IP type --ateapi-postgres-cloudsql-* ATE_API_POSTGRES_CLOUDSQL_* Removed
Record directory --record-dir ATE_RECORD_DIR Stable
  • Deprecation timeline:
    • one release before removal, the GCP and Cloud SQL settings work and print deprecation warnings;
    • at removal, they are accepted with a warning for one release;
    • for two releases after removal, setting PROJECT_ID without --context is an error.
  • Install record. YAML at <record-dir, default the user cache directory>/ate-setup/installs/<context>.yaml, written with mode 0600, with:
    • apiVersion: install.ate.dev/v1alpha1 and kind: SubstrateInstall;
    • a cluster metadata block;
    • non-secret settings, nested by dotted key.

Changes:

  • Component paths: the record stores --component paths.
  • Merging: a later deploy merges into the record instead of replacing it, and --unset <key> and --remove-component <dir> remove entries.
  • Removed keys: keys for removed settings are dropped when the record is rewritten.

Enforcement. CLI tests for each flag and environment variable. Deprecation tests load an old record and assert one warning per removed key, and that the rewritten record omits them.

Implementation: #3688 (install record merge, Components, --unset, --remove-component), #3669 (deprecation warnings), #3670 (removal). PR #3313 (pass --component on every upgrade step) depends on the record change.

Parent Issue: #3160

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions