Skip to content

[WIP] Modernize code samples and add deployment E2E CI - #6748

Draft
dprotaso wants to merge 8 commits into
knative:mainfrom
dprotaso:modernize-code-samples
Draft

dprotaso wants to merge 8 commits into
knative:mainfrom
dprotaso:modernize-code-samples

Conversation

@dprotaso

Copy link
Copy Markdown
Member

Summary

Combined WIP review PR for the retained code-sample updates, documentation cleanup, consolidations, and directory-scoped deployment CI. Changes are grouped by component into focused commits to make the large diff easier to review; dependency lockfiles account for a substantial part of it.

Sample updates

  • Modernize retained Hello World and CloudEvents runtimes, framework dependencies, image builds, and regression tests, including Swift, Elixir, Haskell, RServer, Kotlin, Micronaut, Quarkus, and both Vert.x examples.
  • Consolidate the Go Eventing Hello World receiver into Go CloudEvents while preserving the Broker/Trigger tutorial and tests.
  • Combine Parallel into one tutorial with one source-backed Go helper and two routing configurations.
  • Reuse Go Hello World for Istio routing instead of maintaining another backend.
  • Replace the GCP-dependent Secrets application with a self-contained mounted-file example.
  • Repair Bookstore build/runtime/event handling and retain its actual multi-component deployment tests.
  • Replace full-file copies in sample documentation with links to canonical files, and update the legacy repository consistency test to accept those links.

Real deployment CI

Add one path-scoped GitHub Actions matrix with 39 jobs covering 40 demonstrations. It builds actual sample artifacts, provisions a disposable kind/Knative environment, waits for live workload readiness, asserts documented HTTP/event/protocol behavior, preserves failure diagnostics, and cleans up owned resources.

Only changed sample directories and explicitly declared shared-source dependents select deployment jobs. Harness-only edits validate the harness without deploying unrelated samples. Full sweeps are explicit. Fork PR jobs use read-only permissions and no real service credentials or pull_request_target.

The first run of this PR is expected to select all retained sample jobs because all their recipes are introduced here. Later changes should select only affected jobs. Hosted runs may require normal repository approval for fork workflows.

Review guide

  1. Community sample modernization and recipes.
  2. Common Hello World runtimes/docs/tests.
  3. CloudEvents modernization and canonical Go receiver.
  4. Serving protocol/routing/secrets/multi-container changes.
  5. Eventing, Bookstore, and combined Parallel.
  6. Shared CI, catalog/redirect updates, and canonical-source consistency checks.

No workstation audit reports, private kubeconfigs, or absolute audit-path dependencies are included. Original owner worktrees and detailed local evidence are preserved outside this branch.

Validation

  • 39/39 local sample jobs: complete execution, behavior/evidence verification, and cleanup exit 0 on clean owner source snapshots.
  • Five additional actual fresh-cluster full runs passed: GitHubSource, GitLabSource, Istio, KafkaChannel, and cold Camel/Bookstore.
  • Combined checkout: 61 shared harness tests, Bash syntax, PyYAML checks, and actionlint passed in Docker.
  • Combined checkout: go test -mod=vendor ./test/... passed in Docker, including canonical-source-link regressions.
  • All 39 integrated recipes are registered/selectable; the actual combined Git diff selects exactly 39 jobs under the checkout-owner identity; no new broken relative Markdown links found.
  • Additional combined-checkout E2E: Go Hello World built from this branch, deployed to a new disposable kind cluster, passed its behavior/evidence checks, and completed cleanup with execution=0, cleanup=0, runner=0.
  • git diff --check passed.

Local validation used Docker Desktop Linux/arm64, with emulation where needed. No GitHub-hosted/amd64 sweep or full website build is claimed yet. GitHub/GitLab APIs, Slack webhooks and observation endpoints are explicit local fixtures with dummy credentials; actual applications, adapters, controllers and routing paths are exercised, not real SaaS permissions/public callbacks.

Separate removal PRs

The previously requested removals remain separate and are not folded into this PR:
#6725 (KafkaBinding), #6726 (Deno), #6727 (BentoML), #6728 (Spark Java), #6729 (Scala/Akka), and #6747 (Go-wrapped R).

The CI registry records those retirement exclusions. The duplicate Go receiver and old Parallel layout are removed here as part of their requested consolidations.

@knative-prow knative-prow Bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 25, 2026
@knative-prow

knative-prow Bot commented Oct 25, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dprotaso

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@netlify

netlify Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for knative ready!

Name Link
🔨 Latest commit 946fc31
🔍 Latest deploy log https://app.netlify.com/projects/knative/deploys/6add9d9cc90fd88ecf83fa34
😎 Deploy Preview https://deploy-preview-6748--knative.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@knative-prow knative-prow Bot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Oct 25, 2026

This branch has not been deployed

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant