Repository navigation
Description
π€ Generated by the Daily AI Assistant
Problem
The ksail AWS EKS provider is implemented and unit-covered but stays π§ because its remaining acceptance criteria (ksail#4328) are AWS-credential-gated: the EKS CI system test (create β info β GitOps bootstrap β delete) needs AWS test credentials, and there are none in the portfolio today (platform is Hetzner-only; no AWS Crossplane provider, no AWS creds anywhere).
Decision (maintainer, 2026-06-29)
Provision the AWS test credentials declaratively via Crossplane (favored over Terraform), behind a new devantler-tech/aws tenant created first. This epic captures the path so it can be picked up incrementally.
Proposed architecture β mirror the existing github-config tenant
The portfolio already runs GitHub-as-code this exact way: a tenant namespace runs provider-upjet-github, ProviderConfig credentials come from OpenBao via an ExternalSecret, and declarative CRs live in github/devantler-tech/.github-public/deploy/. Mirror it for AWS:
| github-config (today) | aws (proposed) |
|---|---|
provider-upjet-github v0.19.1 |
AWS Crossplane provider (family, IAM) |
ProviderConfig β OpenBao infrastructure/github/app (GitHub App, maintainer-seeded) |
ProviderConfig β OpenBao infrastructure/aws/bootstrap (bootstrap IAM, maintainer-seeded) |
CRs in .github-public/deploy/ |
CRs in a new devantler-tech/aws repo deploy/ |
Sequenced children
- AWS provider +
awstenant scaffold β install the AWS Crossplane provider + ProviderConfig (OpenBao-seeded bootstrap creds), create thedevantler-tech/awsrepo (per the net-new-repo custom-property bootstrap) and wire it as a platform tenant. (foundation) - Declaratively provision the EKS-test AWS identity β least-privilege IAM for eksctl EKS create/delete + the GitOps-on-EKS test, surfaced for CI. Decision point: GitHub OIDC role (preferred, no long-lived secret) vs. static access key.
- Deliver the credential to ksail CI declaratively β either a GitHub OIDC identity-provider trust, or a declarative
RepositoryActionsSecret(requires activating that provider-upjet-github CRD β not yet activated) sourced from the Crossplane connection secret. - ksail#4328 (existing, the consumer) β add
system-test-eks.yamlmirroringsystem-test-hetzner.yaml+ drop the README π§, once 1β3 land.
Notes / known gaps (from a live scan)
- No AWS Crossplane provider is installed in platform today β greenfield.
- provider-upjet-github has no Actions-secret CRD activated; the platform has no declarative GitHub-Actions-secret pattern at all yet (child 3 builds it, unless OIDC removes the need).
- Bootstrap chicken-and-egg: the AWS ProviderConfig needs an initial bootstrap IAM credential seeded into OpenBao (a manual maintainer step, like the GitHub App credential).
- Prefer GitHub OIDC β AWS role so CI assumes a short-lived role with no stored secret; fall back to a static access key only if OIDC is impractical.
Rough size: MβL across platform + a new repo + .github + ksail; each child is independently shippable.
Metadata
Metadata
Assignees
Labels
Type
Fields
Projects
- StatusShow more project fieldsβ Done
Activity
devantler commentedon Jun 29, 2026
Children filed and sequenced:
devantler-tech/awstenant scaffold (foundation)system-test-eks.yaml+ drop π§ (the consumer) β blocked by feat: deliver AWS creds to ksail CI declaratively (OIDC or declarative Actions secret)Β #2327Pick up oldest-first from #2325. The first real fork is in #2326 (OIDC vs static key); OIDC is recommended and would simplify #2327.
devantler commentedon Sep 30, 2026
Closing as delivered. This roadmap's own scope was the credential path for KSail's EKS testing, and all three of its steps are done:
devantler-tech/awstenant): closed as completed.The path works in practice. KSail's
system-test-eks.yamlexists, and its latest dispatch (2026-09-15) authenticated to AWS and raneksctl create clusterfor about 37 minutes. It then failed inside KSail's own create flow, not on credentials.Step 4, finishing the EKS provider and getting its system test green, is tracked in devantler-tech/ksail#4328. That issue is open and being worked on, so nothing is left for this platform roadmap. If the credential path breaks again, reopen this.