This is a Kubernetes workshop project that combines a Hugo static website with a
Go web server. The website content is in web/ and served by a Go binary built
from cmd/k8s-workshop. The project serves as basis for a course teaching
Kubernetes. The course has emphasis on simplicity and hand-on learning through
exercises.
- Build everything:
task build(builds static files + Go binary) - Run the application:
task run(builds and runs the binary) - Build static files only:
task static-build - Run Hugo dev server:
task static-run - Build Go binary only:
go build -o bin/k8s-workshop ./cmd/k8s-workshop
- Test Go code:
go test ./... - Check Go modules:
go mod tidy && go mod verify - Lint (if available): Check for golangci-lint or similar tools
- Build Docker image:
task docker - Push Docker image:
task docker-push - Run Docker container:
task docker-run
cmd/k8s-workshop/- Go web server that serves the Hugo siteweb/- Hugo static site with workshop contentweb/content/- Markdown content filesweb/layouts/- Hugo templatesweb/static/- Static assetsweb/public/- Generated static files (build output)
exercises/- Exercise files referenced by the websitebin/- Built binariesbuild/- Build configuration (Docker, etc.)
- Make changes to
web/content/for website content - Make changes to
cmd/k8s-workshop/for server logic - Use
task runto build and test locally - Use
task static-runfor rapid website development with Hugo's live reload
- Go: 1.24.3
- Hugo: Static site generator
- Chi router: go-chi/chi/v5 for HTTP routing
- Task: Task runner for build automation
- Registry: registry.digitalocean.com/blacksails/systematic-k8s-workshop
- Multi-arch: Builds for linux/amd64 and linux/arm64
- Port: Application runs on port 8080
- Markdown is written with a text width of 80 characters