Skip to content

docs(appendix-r): example 05 on minikube (docker driver, containerd) (S9) - #67

Merged
patterncatalyst merged 21 commits into
mainfrom
docs/minikube-docker-driver
Oct 11, 2026
Merged

patterncatalyst merged 21 commits into
mainfrom
docs/minikube-docker-driver

Conversation

@patterncatalyst

Copy link
Copy Markdown
Owner

S9 of the modernization plan (_plans/s9-minikube-plan.md, evidence in _plans/modernization-plan.md).

Appendix R: Example 05 on minikube

  • Profile cndp-k8s: docker driver, containerd, Kubernetes v1.36.5. NodePorts 30080 (order-service) and 30300 (Grafana) are published on 127.0.0.1 when the cluster is created. No tunnels, port-forward or minikube service.
  • Strimzi 1.2.0 runs Kafka 4.3.1 (KRaft). Postgres 18.6 is a StatefulSet, plus one otel-lgtm pod.
  • Kustomize infra/ + base/ + six language overlays. Images are built with Docker and loaded with minikube image load.
  • Scripts: setup-profile.sh, build-images.sh, deploy.sh, teardown.sh and verify-matrix.sh.
    • The scripts never change kubectl's current-context. minikube v1.39.0's restart path ignores --keep-context, so the setup script restores the previous context from an EXIT trap.
    • Teardown is idempotent.
  • verify.sh has a RUNTIME=kubernetes mode. It keeps the same 10 checks and is reusable for OpenShift in S10.
  • New appendix and figures R.1 and R.2. The glossary moves to the end of the order. The prerequisites pin minikube v1.39.0 and kubectl v1.36.5, with sha256 checks.

CI

  • New k8s selector kind and a k8s job: kubectl and kubeconform v0.8.0 (checksum-verified) validate every overlay against 1.36.5, with pinned CRD schemas. It is part of examples-ok.

Fixes found along the way

  • Quarkus exported OTLP over gRPC to the HTTP port 4318. The fix covers 10 projects in examples 02, 03, 05 and 06.
  • .NET 05 OTLP fixes:
    • It now exports over HTTP.
    • Consumer sources are registered.
    • SERVICE_VERSION is set only on order-service.
  • Example 05 traces:
    • Go and C++ had no tracing at all, and now report OpenTelemetry traces.
    • Go, C++ and Python propagate trace context through the Kafka headers, so one trace holds the HTTP, producer and both consumer spans.
    • Service names are aligned across all six languages.
  • .NET builds could fail with NETSDK1064 when the cached restore layer outlived the NuGet cache mount. All 32 Containerfiles now run restore and publish in one RUN with a sharing=locked cache mount, and the Appendix P text and figure match.

Evidence

  • minikube: 10/10 for all six languages. Tempo shows order-service, shipping-consumer and notification-consumer for each.
  • Compose:
    • 05 go, cpp and python pass.
    • All 19 .NET targets pass.
    • The changed Quarkus examples pass.
  • Opus validation plus two repair rounds and a final recheck.
  • actionlint, shellcheck and kubeconform are clean, and validate_site.py reports 0 errors.
  • The run ended with cndp-k8s stopped and current-context unchanged.

@patterncatalyst
patterncatalyst merged commit 2ce6762 into main Oct 11, 2026
199 checks passed
@patterncatalyst
patterncatalyst deleted the docs/minikube-docker-driver branch October 11, 2026 17:23
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.

1 participant