How cdami/container.training works
This repository collects container and Kubernetes lab examples, with Dockercoins as its principal runnable application. In Dockercoins, a worker fetches random bytes, hashes them, and records qualifying coins and work counts in Redis; the web UI reads that state for display. Compose and Kubernetes manifests describe deployment variants. Separate labs cover Kubernetes resources and networking, observability stacks, and a Pod admission webhook. Runtime edges are based on sampled service code; manifest examples are represented without inferring unsampled wiring.
Main entry points: docker-compose.yml Docker Compose app · kubercoins Kubernetes app manifests · worker.py Worker · webui.js Web UI
Components 20
Dockercoins runtime
- Web UI
dockercoins/webui/webui.js - Worker
dockercoins/worker/worker.py - Random-byte service
dockercoins/rng/rng.py - Hash service
dockercoins/hasher/hasher.rb - Redis state
Deployment examples
- Docker Compose app
dockercoins/docker-compose.yml - Kubernetes app manifests
kubercoins - Dockercoins stacks
stacks/dockercoins.yml
Kubernetes labs
- Kubernetes examples
k8s - Network policy examples
k8s/netpol-dockercoins.yaml - Stateful storage examples
k8s/statefulset-pvc.yaml - Ingress examples
k8s/traefik.yaml
Operations stacks
- Prometheus stack
stacks/prometheus.yml - ELK stack
stacks/elk.yml - Registry stack
stacks/registry.yml
Admission policy
- Webhook configuration
webhooks/admission/k8s/webhook-configuration.yaml - Webhook server deployment
webhooks/admission/k8s/webhook-server.yaml - Pod policy webhook
webhooks/admission/flask/webhook.py
Other components
- Browser user
- Kubernetes API server
Connections 20
- Browser user → Web UI: requests page
- Web UI → Redis state: reads wallet and hashes
- Worker → Random-byte service: requests random bytes
- Worker → Hash service: posts bytes to hash
- Worker → Redis state: updates coin state
- Docker Compose app → Web UI: defines service
- Docker Compose app → Worker: defines service
- Docker Compose app → Random-byte service: defines service
- Docker Compose app → Hash service: defines service
- Docker Compose app → Redis state: defines service
- Kubernetes app manifests → Web UI: configures deployment
- Kubernetes app manifests → Worker: configures deployment
- Kubernetes app manifests → Random-byte service: configures deployment
- Kubernetes app manifests → Hash service: configures deployment
- Kubernetes app manifests → Redis state: configures service
- Dockercoins stacks → Web UI: describes stack
- Kubernetes API server → Pod policy webhook: sends admission review
- Pod policy webhook → Kubernetes API server: returns admission decision
- Webhook configuration → Pod policy webhook: configures admission call
- Webhook server deployment → Pod policy webhook: configures server