Skip to content

deploy-lambda: web identity only, no stored-key fallback (federation phase 4) - #118

Merged
jfillman merged 1 commit into
mainfrom
phase4/lambda-keyless-only
Oct 16, 2026
Merged

jfillman merged 1 commit into
mainfrom
phase4/lambda-keyless-only

Conversation

@jfillman

Copy link
Copy Markdown
Owner

Phase 4 of the deploy federation (SPEC-glidepath-deployer-federation.md).

Why now: every Lambda app (smoke-fn, both targets) has deployed through its role. The first federated production deploy was promote-prod-0-deploy-cc5kj today. No Secret on kiac-dev (209) or kind-prod (104) holds an AWS key, and no ExternalSecret pulls one. The fallback could only ever hand a deploy a long-lived key again.

Change

  • glidepath-catalog.awsLambdaCredentials: web identity only. Each missing piece fails with its own message and fix: the account ConfigMap (clusters.yaml aws.accountId), the ServiceAccount (taskRunSpecs), or STS refusing the role (the target's -deploy Role).
  • deploy-lambda no longer mounts app-secrets.
  • New charts/glidepath-catalog/tests/aws_credentials_test.sh, wired into catalog-ci: 10 cases against a stub aws, including "never reads a stored key". 7 of them fail against the old templates.
  • Docs: cloud-deploy-identity.md (fallback section rewritten, symptom table, flowchart redrawn without the fallback), cicd-yaml-reference.md (no secrets for aws-lambda), security.md, known gap 43 (Lambda closed; ECS and Azure remain), schema description (text only, no validation change, so no toolbox rebuild).

Canary: the catalog-versioning canary can't exercise this, because POL-10 lets glidepath-cloud-deployer run only the deploy Pipeline resolved from platform-catalog. Verified live after merge with a real deploy instead.

🤖 Generated with Claude Code

…phase 4)

The app-secrets access key was a fallback for the switch. Every Lambda app
has now deployed through its role and no Secret on kiac-dev or kind-prod
holds an AWS key, so the fallback could only ever hand a deploy a long-lived
key again. Removed: deploy-lambda no longer mounts app-secrets, and the
credential helper fails with an error naming the missing piece (account
ConfigMap, ServiceAccount, or the function's role).

New test charts/glidepath-catalog/tests/aws_credentials_test.sh (in
catalog-ci): 10 cases, 7 of which fail against the old templates. Docs:
cloud-deploy-identity.md (redrawn flowchart), cicd-yaml-reference.md,
security.md, known gap 43 (Lambda closed; ECS and Azure remain), schema
description.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jfillman
jfillman merged commit 483d905 into main Oct 16, 2026
10 checks passed
@jfillman
jfillman deleted the phase4/lambda-keyless-only branch October 16, 2026 18:32
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