Context
Follow-up from review on datum-cloud/infra#2728 (review).
The current provisioning/setup-datumctl script installs datumctl and authenticates a service account, but it lives in this repo and is invoked as a raw script. Per @scotwells, this should instead be packaged like google-github-actions/setup-gcloud so any consumer can install datumctl and authenticate with a service account to access their projects.
Goal
Publish a reusable, versioned GitHub Action that:
- Installs a pinned (or input-selectable)
datumctl version, cross-platform (Linux/macOS, x86_64/arm64).
- Authenticates a Datum service account from a credentials input, storing the session in the datumctl keyring for subsequent
datumctl/kubectl calls.
- Exposes inputs for version, auth hostname, and credentials (tolerating both raw-JSON and base64-encoded credentials, matching the fix in datum-cloud/infra#2728).
- Is consumable by external repos, not just
datum-cloud/infra.
Notes
- Likely belongs in its own repo (e.g.
datum-cloud/setup-datumctl) for independent versioning/tagging.
- Once shipped, migrate this repo's E2E workflow off
provisioning/setup-datumctl to the published action.
Context
Follow-up from review on datum-cloud/infra#2728 (review).
The current
provisioning/setup-datumctlscript installsdatumctland authenticates a service account, but it lives in this repo and is invoked as a raw script. Per @scotwells, this should instead be packaged likegoogle-github-actions/setup-gcloudso any consumer can install datumctl and authenticate with a service account to access their projects.Goal
Publish a reusable, versioned GitHub Action that:
datumctlversion, cross-platform (Linux/macOS, x86_64/arm64).datumctl/kubectlcalls.datum-cloud/infra.Notes
datum-cloud/setup-datumctl) for independent versioning/tagging.provisioning/setup-datumctlto the published action.