Skip to content

feat(gcloud-mcp): add keyless Cloud CLI MCP image - #46

Merged
xnoto merged 2 commits into
mainfrom
feat/gcloud-mcp-image
Sep 9, 2026
Merged

feat(gcloud-mcp): add keyless Cloud CLI MCP image#46
xnoto merged 2 commits into
mainfrom
feat/gcloud-mcp-image

Conversation

@xnoto

@xnoto xnoto commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds ghcr.io/makeitworkcloud/gcloud-mcp, a non-root image for the Google-owned @google-cloud/gcloud-mcp stdio server:

  • Node 22 slim pinned by OCI digest;
  • Google Cloud CLI pinned to 580.0.0;
  • @google-cloud/gcloud-mcp pinned to 0.5.3; and
  • no credential, service-account key, static bearer token, or state material.

The accompanying runtime contract requires projected Kubernetes identity, non-secret WIF credential configuration, a restrictive mounted command allowlist, and eventual OCI-digest GitOps selection.

Fixes #

None — owner-approved keyless local gcloud MCP preparation.

Type of change

  • Bug fix
  • Feature / enhancement
  • Documentation
  • Infrastructure (OpenTofu root or module)
  • GitOps desired state (manifests, kustomize, charts, SOPS/KSOPS secrets)
  • Container image
  • CI / reusable workflow
  • Refactor / cleanup
  • Breaking change

Validation

  • Required pull-request checks pass — buildah checks, detection, and gcloud-mcp build succeeded at ba7916b; Push to registry was skipped for the pull request.
  • Generated or centrally distributed files were regenerated by their owning automation, not hand-edited — none apply.

PR CI is the validation authority.

Impact and rollout

Producer: a confirmed merge to main automatically publishes latest and a commit-SHA tag. Publication is not deployment.

Consumers: none exist yet. A future Kustomize/ToolHive change must select a verified ghcr.io/makeitworkcloud/gcloud-mcp@sha256:<manifest-digest> only after the dedicated GCP WIF identity has applied.

Residual hardening: the direct npm package is version-pinned but its transitive graph is not lockfile-pinned; the Google APT signing key is fetched during build. Independent security review classified these as Medium/Low follow-ups, not merge blockers.

Rollback: select a prior verified image digest through a separate GitOps change; no running workload is created here.

Safety and secrets

  • Contains no plaintext secrets, decrypted SOPS values, state files, kubeconfigs, tokens, or private endpoints.
  • No local OpenTofu init/plan/apply/destroy/import/state operations were run or claimed — plans come from pull-request checks.
  • Breaking or irreversible effects are described above with rollback notes.

AI-assisted change: an OpenCode agent materially produced this change. Reviewers should verify the immutable base, direct package/CLI pins, non-root runtime, and absence of credential material.

@xnoto
xnoto requested a review from a team as a code owner September 9, 2026 04:13
@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown

Image CI passed

Pre-commit validation passed. View the workflow run.

@xnoto

xnoto commented Sep 9, 2026

Copy link
Copy Markdown
Contributor Author

Owner authorization recorded 2026-09-09: merge and proceed with the staged GCP MCP rollout. The immutable Node base plus direct version pins remain required; the image's npm transitive-resolution and Google APT key retrieval are accepted as documented residual supply-chain risks for this initial producer PR. The downstream GitOps consumer must still select a verified OCI manifest digest.

@xnoto
xnoto merged commit d784187 into main Sep 9, 2026
4 checks passed
@xnoto
xnoto deleted the feat/gcloud-mcp-image branch September 9, 2026 06:40
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.

1 participant