Skip to content

roadmap: declarative AWS test credentials via a devantler-tech/aws Crossplane tenant (unblocks ksail EKS)Β #2324

Closed
1 of 1 issue completed

Description

@devantler

πŸ€– 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

  1. AWS provider + aws tenant scaffold β€” install the AWS Crossplane provider + ProviderConfig (OpenBao-seeded bootstrap creds), create the devantler-tech/aws repo (per the net-new-repo custom-property bootstrap) and wire it as a platform tenant. (foundation)
  2. 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.
  3. 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.
  4. ksail#4328 (existing, the consumer) β€” add system-test-eks.yaml mirroring system-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.

Activity

  1. devantler commented on Jun 29, 2026

    @devantler
    ContributorAuthor

    πŸ€– Generated by the Daily AI Assistant

    Children filed and sequenced:

    Pick up oldest-first from #2325. The first real fork is in #2326 (OIDC vs static key); OIDC is recommended and would simplify #2327.

  2. moved this to πŸ“₯ Backlog in 🌊 Project Boardon Jul 18, 2026
  3. added theissue type on Jul 18, 2026
  4. devantler commented on Sep 30, 2026

    @devantler
    ContributorAuthor

    πŸ€– Generated by the Agentic Engineer

    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:

    The path works in practice. KSail's system-test-eks.yaml exists, and its latest dispatch (2026-09-15) authenticated to AWS and ran eksctl create cluster for 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    No fields configured for Epic.

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions