Skip to content

Address substrate-gke installer feedback: AR API, teardown coverage, doc fix - #1408

Merged
Anna Pendleton (annapendleton) merged 4 commits into
agent-substrate:mainfrom
aditya-shantanu:substrate-gke-feedback
Sep 2, 2026
Merged

Address substrate-gke installer feedback: AR API, teardown coverage, doc fix#1408
Anna Pendleton (annapendleton) merged 4 commits into
agent-substrate:mainfrom
aditya-shantanu:substrate-gke-feedback

Conversation

@aditya-shantanu

Copy link
Copy Markdown
Collaborator

Three fixes from user feedback on the substrate-gke installer experience, consolidated per reviewer preference (replaces #1405, #1406, #1407):

1. setup-gcp: enable artifactregistry.googleapis.com in bootstrap. Bootstrap grants roles/artifactregistry.reader to the GKE node service account and the atelet workload-identity principal, and ko pushes the control-plane images through gcr.io's Artifact Registry backing — but enableRequiredAPIs never enabled the API, so a fresh project failed at image push/pull instead of step 1.

2. teardown.sh: cover everything bootstrap creates, without a dev-env file.

  • Revoke atelet's project-level bindings (roles/storage.objectAdmin, roles/artifactregistry.reader), which grant_atelet_permissions adds but nothing removed.
  • Delete the three Substrate monitoring dashboards, matched by the display names in tools/setup-gcp/dashboards/.
  • Accept configuration from the environment when .ate-dev-env.sh is absent (missing variables are named specifically), so installers and one-liners can drive the script.
  • Drop the kubectl cluster-admin precheck: every step talks to GCP, not the cluster, and it blocked tearing down a cluster that was already gone.
  • --all now runs in the true reverse of bootstrap's setup order.

3. commands.md: the hack/install-demo-*.sh scripts still exist. The closing paragraph claimed they are gone, but hack/install-ate.sh still sources them and generates its --deploy-demo-NAME / --delete-demo-NAME flags from them.

Bootstrap grants roles/artifactregistry.reader to the GKE node service
account and the atelet workload-identity principal, and ko pushes the
control-plane images through gcr.io's Artifact Registry backing — but
the API-enablement step never enabled artifactregistry.googleapis.com,
so a fresh project failed at image push/pull instead of step 1.
- Revoke atelet's project-level bindings (roles/storage.objectAdmin and
  roles/artifactregistry.reader for the workload-identity principal),
  which grant_atelet_permissions adds but nothing removed.
- Delete the three Substrate monitoring dashboards, matched by the
  display names in tools/setup-gcp/dashboards/.
- Accept configuration from the environment when .ate-dev-env.sh is
  absent, so installers and one-liners can drive the script, and fail
  with the specific missing variable instead of a blanket message.
- Drop the kubectl cluster-admin precheck: every step talks to GCP, not
  the cluster, and the check blocked tearing down a cluster that was
  already gone or unreachable.
- Make --all run in the true reverse of bootstrap's setup order.
The closing paragraph claimed the per-demo hack scripts are gone, but
hack/install-ate.sh still sources hack/install-demo-*.sh and generates
its --deploy-demo-NAME / --delete-demo-NAME flags from them. Describe
the two installers as parallel instead of declaring one dead.
Deleting a bucket must not demand a node pool name. Each step now
declares its own requirements via a require helper, still failing up
front with the specific missing variable, and --all skips the separate
node-pool deletion when NODE_POOL_NAME is unset — deleting the cluster
removes its pools — so a caller that does not track the pool name (an
installer driving this script through the environment) can still run
the full teardown.
@aditya-shantanu

Copy link
Copy Markdown
Collaborator Author

Pushed one more commit: the env-var guard now lives per step (require helper), so each step demands only the variables it uses — deleting a bucket no longer insists on NODE_POOL_NAME — and --all skips the separate node-pool deletion when NODE_POOL_NAME is unset, since deleting the cluster removes its pools. This lets an installer drive the full teardown through the environment without tracking the pool name.

@annapendleton
Anna Pendleton (annapendleton) merged commit cbae825 into agent-substrate:main Sep 2, 2026
9 checks passed
@aditya-shantanu
Aditya Shantanu (aditya-shantanu) deleted the substrate-gke-feedback branch September 2, 2026 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants