-
Notifications
You must be signed in to change notification settings - Fork 0
Add Module 19: Containerization & Orchestration to Part V #13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Add Module 19 covering Docker fundamentals, Docker Compose, Kubernetes primitives, and the K8s-first development stack (kind, Tilt, k3s, Kustomize). Includes practical examples for docker-compose and kubernetes workflows, and stubs out Part V roadmap for future observability and infrastructure-as-code modules. - New curriculum Part V: Infrastructure & Operations - Module 19 with 7 parts and 5 exercises - Example 19: chat-docker-compose - Example 20: chat-kubernetes (kind + Tilt) - Updated Module 15 decision tree with container path - Updated sidebars and curriculum README https://claude.ai/code/session_01G1ojUHAKE3Et2yHXsbMjXG
Greptile OverviewGreptile SummaryThis PR introduces Module 19: Containerization & Orchestration as the first module of Part V (Infrastructure & Operations). The implementation is comprehensive, well-structured, and production-ready. Key Additions:
Technical Quality:
Pedagogical Approach: Integration: Confidence Score: 5/5
Important Files Changed
Sequence DiagramsequenceDiagram
participant Dev as Developer
participant Curr as Curriculum
participant Ex19 as Docker Compose Example
participant Ex20 as K8s Example
participant CI as CI/CD Workflows
participant Web as Website Docs
Dev->>Curr: Add Module 19 content (1,186 lines)
Note over Curr: Covers Docker, Compose, K8s primitives,<br/>K8s-first development stack
Dev->>Curr: Update Part V README
Note over Curr: Roadmap for Modules 19-21
Dev->>Curr: Update Module 15
Note over Curr: Add "What's Next" link to Module 19
Dev->>Curr: Update curriculum index
Note over Curr: Add Part V with Module 19 complete
Dev->>Ex19: Create Docker Compose example
Ex19->>Ex19: Frontend Dockerfile (multi-stage)
Ex19->>Ex19: Backend Dockerfile (Node.js)
Ex19->>Ex19: docker-compose.yml with Traefik
Ex19->>Ex19: docker-compose.override.yml for dev
Ex19->>Ex19: Full chat app implementation
Dev->>Ex20: Create Kubernetes example
Ex20->>Ex20: K8s manifests (Deployment, Service, Ingress)
Ex20->>Ex20: Kustomize base + overlays
Ex20->>Ex20: Tiltfile for dev workflow
Ex20->>Ex20: kind-config.yaml for local K8s
Ex20->>Ex20: Full chat app implementation
Dev->>CI: Update link check configs
Note over CI: Add patterns for example URLs
Dev->>Web: Sync curriculum to website
Dev->>Web: Add example documentation pages
Dev->>Web: Update sidebars with new content
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
5 files reviewed, 2 comments
| ``` | ||
| 19-chat-docker-compose/ | ||
| ├── client/ | ||
| │ ├── Dockerfile # Multi-stage build: Node (build) → nginx (serve) | ||
| │ ├── .dockerignore | ||
| │ ├── nginx.conf # Custom nginx config for SPA routing | ||
| │ └── src/ # React application source | ||
| ├── server/ | ||
| │ ├── Dockerfile # Node.js production image | ||
| │ ├── .dockerignore | ||
| │ └── src/ # Express API source | ||
| ├── docker-compose.yml # Production-like configuration | ||
| ├── docker-compose.override.yml # Development overrides (live reload) | ||
| └── .env.example # Environment variable template | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Check that the actual implementation files (client/Dockerfile, server/Dockerfile, docker-compose.yml, source code) exist in the repository, as they're referenced throughout this README but not included in this PR.
Prompt To Fix With AI
This is a comment left during a code review.
Path: examples/19-chat-docker-compose/README.md
Line: 16:30
Comment:
Check that the actual implementation files (`client/Dockerfile`, `server/Dockerfile`, `docker-compose.yml`, source code) exist in the repository, as they're referenced throughout this README but not included in this PR.
How can I resolve this? If you propose a fix, please make it concise.| ## Structure | ||
|
|
||
| ``` | ||
| 20-chat-kubernetes/ | ||
| ├── client/ | ||
| │ ├── Dockerfile | ||
| │ └── src/ | ||
| ├── server/ | ||
| │ ├── Dockerfile | ||
| │ └── src/ | ||
| ├── k8s/ | ||
| │ ├── base/ | ||
| │ │ ├── kustomization.yaml | ||
| │ │ ├── backend-deployment.yaml | ||
| │ │ ├── frontend-deployment.yaml | ||
| │ │ ├── postgres-statefulset.yaml | ||
| │ │ ├── services.yaml | ||
| │ │ ├── configmap.yaml | ||
| │ │ └── ingress.yaml | ||
| │ └── overlays/ | ||
| │ ├── development/ | ||
| │ │ └── kustomization.yaml | ||
| │ └── production/ | ||
| │ └── kustomization.yaml | ||
| ├── Tiltfile | ||
| └── kind-config.yaml | ||
| ``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Verify that the K8s manifests, Tiltfile, and kind-config.yaml exist in the repository, as they're documented here but not included in this PR.
Prompt To Fix With AI
This is a comment left during a code review.
Path: examples/20-chat-kubernetes/README.md
Line: 13:39
Comment:
Verify that the K8s manifests, `Tiltfile`, and `kind-config.yaml` exist in the repository, as they're documented here but not included in this PR.
How can I resolve this? If you propose a fix, please make it concise.Address Greptile review feedback on PR #13: - Create full implementation for example 19 (Docker Compose): Express server with PostgreSQL, React client with Caddy, Traefik reverse proxy with Docker label-based routing, dev overrides - Create full implementation for example 20 (Kubernetes): K8s manifests (Deployments, StatefulSet, Services, Ingress, ConfigMap), Kustomize overlays for dev/prod, Tiltfile, kind config, Traefik helm values - Replace nginx with caddy:2-alpine for static file serving (simpler Caddyfile config with native SPA try_files support) - Replace direct port exposure with Traefik reverse proxy for path-based routing (/api -> backend, / -> frontend) - Create website doc pages for both new examples - Update sidebar to include chat-docker-compose and chat-kubernetes - Update both copies of the curriculum module (nginx -> caddy/traefik in multi-stage builds, Docker Compose, ingress controller, exercise 2)
- Rename social card image to match docusaurus.config.ts reference (docusaurus-social-card.jpg -> devfoundry-social-card.jpg) - Filter out internal relative paths from linkinator broken link count (extensionless Docusaurus URLs like build/docs/overview can't be resolved from filesystem; Docusaurus validates these at build time) - Skip dev.episkopos.community from external link check (self-referential og:image URL only resolves after deployment) - Remove missing CONTRIBUTING.md from markdown link check file-path - Fix GitHub repo URLs in new example doc pages (devfoundry -> Episk-pos)
… check The deployed site returns 404 for curriculum category pages (e.g. /docs/curriculum/part-1-foundations) which are linked from curriculum README files. Also ignore http://api-server which appears in K8s code examples and is not a real URL.
|
@greptile |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
8 files reviewed, no comments
Summary
This PR introduces Module 19: Containerization & Orchestration, the first module of Part V (Infrastructure & Operations). It provides comprehensive coverage of Docker, Docker Compose, and Kubernetes fundamentals, bridging the gap between local development and production deployment patterns.
Key Changes
New Module 19 (
curriculum/part-5-infrastructure-and-operations/19-containerization-and-orchestration.md): A 1,100+ line deep dive covering:Part V Structure (
curriculum/part-5-infrastructure-and-operations/README.md): New directory with roadmap for Modules 20-21 (Observability & Reliability, Infrastructure as Code)Updated Part III (
curriculum/part-3-building-applications/15-deployed-app.md): Added "What's Next" section linking to Module 19 for readers wanting deeper deployment controlUpdated Curriculum Index (
curriculum/README.md): Added Part V table with Module 19 marked complete, Modules 20-21 marked plannedWorking Example (
examples/19-chat-docker-compose/): Complete, runnable Docker Compose setup for the chat app with:docker-compose.ymlwith frontend, backend, and PostgreSQLNotable Implementation Details
Alignment
This module completes the journey from "deploying to managed platforms" (Module 15) to "understanding the infrastructure patterns behind those platforms" (Module 19), setting up Part V's progression toward observability and infrastructure-as-code.
https://claude.ai/code/session_01G1ojUHAKE3Et2yHXsbMjXG