Skip to content

test(e2e): modernize the quickstart suite onto the current bootstrap#418

Merged
mjudeikis merged 2 commits into
mainfrom
feat/quickstart-suite-modernization
Jul 11, 2026
Merged

test(e2e): modernize the quickstart suite onto the current bootstrap#418
mjudeikis merged 2 commits into
mainfrom
feat/quickstart-suite-modernization

Conversation

@mjudeikis

Copy link
Copy Markdown
Contributor

Follow-up to #417, which descoped the quickstart suite from CI when its first-ever run exposed that it predates the provider bootstrap refactor.

What changed

The suite's bootstrap moves into TestMain, mirroring the (CI-validated) infraprovider suite:

  1. Apply provider.yaml (kind Provider) + manifest.yaml (kind CatalogEntry, backend/UI URLs overridden to the suite port) into root:kedge:system:providers — with the API-servable retry, since the hub reports /readyz before those APIs answer.
  2. Wait for the hub's Provider controller to materialize the sub-workspace and populate the provider-token Secret; mint the workspace-scoped runtime kubeconfig around that token (exactly what make init-provider-quickstart scripts).
  3. Run quickstart-provider init with the minted SA kubeconfig — the APIExport, schemas, and bind grant come from init now, not the hub.
  4. Start serve and run the tests.

TestACatalogProvisioning stops applying manifests itself and reads the CatalogEntry from root:kedge:system:providers; the sub-workspace artifact assertions (APIResourceSchema, APIExport shape, bind grant, provider SA) are unchanged — the artifacts just have a different author now. All other tests (DTO, proxies, tenant enable/disable, heartbeat, edge-proxy grant) are untouched.

The suite is re-enabled in the e2e-providers CI job, sequential after the infraprovider suite (shared embedded-kcp etcd port).

Verification

go vet passes; the CI job on this PR is the validating run (local execution is blocked by any running dev kcp on port 2380, by design).

Next in the series: app-studio and code provider subprocess suites.

🤖 Generated with Claude Code

The suite predated the provider bootstrap refactor: it applied only a
CatalogEntry, into root:kedge:providers, and expected the hub to
materialize the APIExport/schemas/bind-grant. The current flow applies
Provider + CatalogEntry into root:kedge:system:providers, the hub's
Provider controller materializes the sub-workspace + SA +
provider-token Secret, and `quickstart-provider init` (run with the
minted SA kubeconfig) authors the APIExport, schemas, and bind grant.

Move the bootstrap into TestMain, mirroring the infraprovider suite:
apply provider.yaml + manifest.yaml (URL-overridden, with the
API-servable retry), wait for the provider-token Secret, mint the
workspace-scoped runtime kubeconfig around it (exactly what
`make init-provider-quickstart` scripts), run init, then serve.
TestACatalogProvisioning stops applying manifests and reads the
CatalogEntry from root:kedge:system:providers; the sub-workspace
artifact assertions are unchanged — the artifacts just come from the
Provider controller + init now.

Re-enable the suite in the e2e-providers CI job (descoped in #417 when
its first-ever CI run exposed the bitrot).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 11, 2026 13:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Modernizes the quickstart provider subprocess e2e suite (make e2e-provider) to follow the current provider bootstrap flow (Provider + CatalogEntry in root:kedge:system:providers, then provider init, then serve) and re-enables it in the provider-suites CI job.

Changes:

  • Move quickstart suite bootstrap into TestMain (apply Provider/CatalogEntry, mint runtime kubeconfig from provider-token, run quickstart-provider init, then start serve).
  • Update TestACatalogProvisioning to read CatalogEntry from root:kedge:system:providers (instead of creating it in-test).
  • Re-enable make e2e-provider in .github/workflows/e2e.yaml after the infraprovider suite, increasing the job timeout.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
test/e2e/suites/provider/provider_test.go Adds system-providers client + manifest application helper; updates catalog provisioning test to match new bootstrap location/flow.
test/e2e/suites/provider/main_test.go Implements the new TestMain bootstrap: apply manifests, mint runtime kubeconfig, run quickstart-provider init, then start provider and wait for health.
.github/workflows/e2e.yaml Runs quickstart provider suite again in the sequential e2e-providers job, with a longer timeout.

Comment thread test/e2e/suites/provider/main_test.go Outdated
Comment on lines +172 to +173
// Same as the Makefile dev flow: no chart schemas dir on a host run.
"KEDGE_SCHEMAS_DIR=/nonexistent",
KEDGE_SCHEMAS_DIR=/nonexistent (copied from the Makefile dev flow) made
init author an APIExport with zero resources — no greetings
APIResourceSchema, so tenant binds exposed no Greeting resource. Point
it at the chart's files/schemas, which is what the init container
mounts in a real deployment.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 11, 2026 13:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@mjudeikis mjudeikis merged commit dabfd8e into main Jul 11, 2026
21 checks passed
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.

2 participants