Skip to content

feat: publish k3s service account JWKS - #10

Closed
xnoto wants to merge 1 commit into
mainfrom
feat/populate-k3s-oidc-jwks
Closed

feat: publish k3s service account JWKS#10
xnoto wants to merge 1 commit into
mainfrom
feat/populate-k3s-oidc-jwks

Conversation

@xnoto

Copy link
Copy Markdown
Contributor

Summary

  • replace the placeholder empty JWKS with the current k3s ServiceAccount public signing key
  • update README wording now that the JWKS is populated

Validation

  • fetched only the public JWKS from the k3s API discovery endpoint; did not read or print the private signing key
  • parsed OIDC JSON files with Python json module
  • verified JWKS contains no private JWK fields: d, p, q, dp, dq, qi, oth
  • scanned OIDC files/docs for AWS account/KMS/access-key/private-key identifiers
  • pre-commit run -a

Notes

  • This publishes public key material only. No private signing keys, AWS credentials, KMS IDs, kubeconfigs, or decrypted SOPS values are included.
  • AWS STS web identity still requires the matching tfroot-libvirt k3s issuer config to be applied/restarted and tfroot-aws IAM OIDC trust to be created.

@xnoto

Copy link
Copy Markdown
ContributorAuthor

Closing without merge: org-wide sweep found zero consumers of https://makeitwork.cloud/oidc (no aws_iam_openid_connect_provider in tfroot-aws, nothing in ansible-site-cluster or kustomize-cluster — only README mentions). The endpoint was scaffolding for future AWS STS web-identity that was never built, and a static JWKS goes stale on any k3s signing-key rotation. The oidc/ path is being removed instead.

@xnotoxnoto closed this Aug 25, 2026
xnoto added a commit that referenced this pull request Aug 25, 2026
Removes `makeitwork.cloud/oidc/` (discovery doc, index, empty JWKS) and
its README section.
Validation before removal:
- Live AWS account has exactly one OIDC provider
(`token.actions.githubusercontent.com`); no `makeitwork.cloud` provider
was ever created
- Zero references in tfroot-aws, ansible-site-cluster, or operator
configs
- The live endpoint has served an empty keyset (`{"keys": []}`) the
whole time and the org is fully functional — the k3s apiserver validates
SA tokens with its local key; nothing external validates against this
URL
- Closes the loop on #10 (closed unmerged with findings)
Deploy uses `aws s3 sync --delete`, so the path is removed from the live
site on merge. k3s cloud-init reference cleanup is a separate
tfroot-libvirt PR (affects only future provisions).
@xnoto
xnoto deleted the feat/populate-k3s-oidc-jwks branch August 25, 2026 18:43
Sign up for freeto 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

@xnoto