test(e2e): modernize the quickstart suite onto the current bootstrap#418
Merged
Conversation
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>
There was a problem hiding this comment.
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 fromprovider-token, runquickstart-provider init, then startserve). - Update
TestACatalogProvisioningto read CatalogEntry fromroot:kedge:system:providers(instead of creating it in-test). - Re-enable
make e2e-providerin.github/workflows/e2e.yamlafter 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 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
provider.yaml(kind Provider) +manifest.yaml(kind CatalogEntry, backend/UI URLs overridden to the suite port) intoroot:kedge:system:providers— with the API-servable retry, since the hub reports/readyzbefore those APIs answer.provider-tokenSecret; mint the workspace-scoped runtime kubeconfig around that token (exactly whatmake init-provider-quickstartscripts).quickstart-provider initwith the minted SA kubeconfig — the APIExport, schemas, and bind grant come from init now, not the hub.TestACatalogProvisioningstops applying manifests itself and reads the CatalogEntry fromroot: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-providersCI job, sequential after the infraprovider suite (shared embedded-kcp etcd port).Verification
go vetpasses; 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