A hands-on learning and experimentation repository for cloud-native technologies, Linux Foundation and CNCF-related training, Kubernetes certification preparation, automation, observability, security and Go development.
Repository description: Hands-on cloud-native labs for Kubernetes, Linux, containers, Go, observability, GitOps, security, CNCF technologies, and the Kubestronaut certification journey.
The Kubestronaut path combines cloud-native foundations, application development, cluster administration, and Kubernetes security. The suggested learning sequence is KCNA → CKAD → CKA → KCSA → CKS, although CNCF does not require the exams to be completed in that order. To earn Kubestronaut recognition, all five certifications must be active at the same time.
The status labels in the diagram describe the content available in this repository. They do not represent an individual's certification status.
For requirements, renewal planning, ethical exam preparation, and official sources, read the complete Kubestronaut learning path.
Long-form documentation is built with MkDocs:
./scripts/docs-serve.sh
# or: make docs-serveThe script creates .venv-docs and installs the pinned dependencies
automatically on first use.
This repository is a long-term, practical workspace for studying and demonstrating cloud-native engineering skills. It provides executable exercises, Kubernetes manifests, Bash scripts, Go examples, troubleshooting scenarios, and documentation covering a wide range of cloud-native topics.
The repository is structured to support personal study and to serve as a public technical portfolio. It is designed to grow gradually and remain lightweight, with each lab being small, focused, and reproducible.
- Prepare for the five certifications required for Kubestronaut recognition
- Build foundation tracks for KCNA and KCSA
- Prepare for the Certified Kubernetes Application Developer (CKAD) exam
- Prepare later for CKA (Certified Kubernetes Administrator) and CKS (Certified Kubernetes Security Specialist)
- Practise Kubernetes application development and administration
- Build Custom Resource Definitions (CRDs)
- Develop controllers and Operators
- Improve Linux and networking knowledge
- Experiment with containers and container runtimes
- Explore observability (Prometheus, Grafana, OpenTelemetry)
- Explore GitOps (Argo CD, Flux)
- Practise cloud-native security
- Develop Kubernetes-related tools with Go
- Document troubleshooting scenarios and lessons learned
cloud-native-lab/
├── certifications/ # Kubestronaut certification preparation
├── kubernetes-labs/ # General Kubernetes exercises
├── go-labs/ # Go code for Kubernetes tooling
├── linux-labs/ # Linux administration exercises
├── container-labs/ # Container and runtime exercises
├── observability-labs/ # Prometheus, Grafana, OpenTelemetry
├── gitops-labs/ # GitOps with Argo CD and Flux
├── security-labs/ # Security practices and tools
├── networking-labs/ # Networking concepts and tools
├── cncf-labs/ # CNCF project explorations
├── automation/ # Scripts, Makefiles, GitHub Actions
├── docs/ # Cheatsheets, templates, notes
├── examples/ # Sample applications
├── scripts/ # Utility scripts
└── tests/ # Manifest and integration tests
Active track: CKAD (Certified Kubernetes Application Developer)
- [x] Repository foundation
- [ ] KCNA preparation
- [ ] CKAD application design and build
- [ ] CKAD application deployment
- [ ] CKAD observability and maintenance
- [ ] CKAD configuration and security
- [ ] CKAD services and networking
- [ ] CKAD mock exams
- [ ] CKA preparation
- [ ] KCSA preparation
- [ ] CKS preparation
- [ ] Kubernetes Operators with Go
| Track | Status | Directory |
|---|---|---|
| KCNA | Foundation | certifications/kcna/ |
| CKAD | In Progress | certifications/ckad/ |
| CKA | Planned | certifications/cka/ |
| KCSA | Foundation | certifications/kcsa/ |
| CKS | Planned | certifications/cks/ |
Certification requirements evolve. Confirm the current path in the official CNCF Kubestronaut FAQ.
| Area | Tools and Technologies |
|---|---|
| Kubernetes | kubectl, Kind, Minikube, k3d, Helm, Kustomize |
| Containers | Docker, containerd, BuildKit, Podman |
| Go | client-go, controller-runtime, cobra, Prometheus client |
| Observability | Prometheus, Grafana, OpenTelemetry, Loki |
| GitOps | Argo CD, Flux |
| Security | Falco, OPA/Gatekeeper, Kyverno, Trivy, Cosign |
| Networking | CoreDNS, Cilium, Calico, Istio, Gateway API |
| CNCF Projects | Various graduated and incubating projects |
| Automation | Bash, Make, GitHub Actions |
The following tools are required to run the labs locally.
Core (required):
Optional (required for specific labs):
Run the prerequisite check:
make check
# or
bash scripts/check-prerequisites.sh# 1. Clone the repository
git clone https://github.com/ferreiraad/cloud-native-lab.git
cd cloud-native-lab
# 2. Check prerequisites
make check
# 3. Create a local Kind cluster
make cluster-create
# 4. Explore a lab (example)
cd certifications/ckad/application-design-and-build/multi-container-pod
cat README.mdEach lab directory contains:
README.md— objective, instructions and learning outcomesnamespace.yaml— namespace for the exerciseresources.yaml(or individual YAML files) — Kubernetes manifestsvalidate.sh— validation commandscleanup.sh— cleanup commands
Run a lab:
kubectl apply -f namespace.yaml
kubectl apply -f resources.yaml
bash validate.shValidate all Kubernetes manifests:
make validateRun linters:
make lintEach lab has a cleanup.sh script. To clean up a specific lab:
bash cleanup.shTo delete the Kind cluster:
make cluster-delete- Read the lab
README.mdbefore attempting any commands - Try to complete the exercise without looking at the answer
- Use
kubectl explainandkubectl --helpto discover options - Run the validation script to confirm correct behaviour
- Run the cleanup script before moving to the next lab
- Review the key commands section and note anything new
- For CKAD preparation, practice the imperative command versions as well
See roadmap.md for the full development plan.
See SECURITY.md for responsible disclosure guidelines and security practices followed in this repository.
See .github/CONTRIBUTING.md and CODE_OF_CONDUCT.md.
This repository is for learning purposes only. The exercises, scripts and configurations are intended to run against local development clusters (Kind, Minikube, k3d) and should not be applied to production environments without careful review and adaptation.
No certification vendor endorses this repository. All trademarks belong to their respective owners.