The Problem
This repository is a collection of Kubernetes learning materials and sample projects, but it ships without a license, test suites, or any CIโgate that validates the manifests. Teams evaluating it for production use must therefore contend with unclear redistribution rights and the risk of untested configurations drifting from intended behavior.
What This Does
The repo organizes content into three topโlevel folders:
- learning/ โ 33 files that walk through core concepts (pods, deployments, DaemonSets, ConfigMaps, Secrets, NetworkPolicies, RBAC, monitoring) each with a
README.mdand one or more YAML manifests (e.g.,learning/What-is-Pod-in-Kubernetes/pod.yaml,learning/Network-Policies-in-K8s/allow-frontend.yaml). - CKAD-exercises/ โ 12 exercise files (
a.core_concepts.mdthroughj.podman.md) that map directly to the Certified Kubernetes Application Developer exam topics. - projects/ โ 10 realโworld project directories (e.g.,
projects/10-microservices-deployment-eks/,projects/Uber-Clone-DevSecOps/) that includeJenkinsfiles,README.mds and deployment artifacts such asbind.yaml,rol.yaml,sa.yaml,sec.yaml.
A root README.md provides a tableโofโcontents, prerequisite checklist, and links to external setup guides. The Jenkins CI configuration lives in the project folders; each Jenkinsfile defines a pipeline that builds, pushes, and optionally deploys container images to an EKS cluster.
How It Is Wired
INTERNAL CALL GRAPH โ The repository contains no executable application code; โcallsโ are limited to CI pipeline stages that invoke kubectl apply, helm upgrade, or containerโimage pushes.
ENTRY POINTS โ README.md (root) and each subโfolderโs README.md serve as the entry points for users. The root README lists the learning path and project links; subโREADMEs detail individual topics or projects.
WHAT THIS CODE TOUCHES OUTSIDE ITSELF โ
- Jenkins pipelines (
projects/10-microservices-deployment-eks/Jenkinsfile,projects/Uber-Clone-DevSecOps/jenkinsfile) interact with external AWS EKS clusters, container registries, and secret stores. - YAML manifests (
*.yaml) are intended forkubectl applyagainst any Kubernetes API server (local clusters via Minikube/kind, or cloud clusters).
WHAT EACH FILE IS RESPONSIBLE FOR โ
| File/Folder | Responsibility |
|---|---|
learning/What-is-Pod-in-Kubernetes/pod.yaml | Minimal pod definition for teaching basics. |
learning/Deploying-an-Application-on-Kubernetes/deployment.yaml | Example Deployment with a container image placeholder. |
projects/10-microservices-deployment-eks/Jenkinsfile | CI pipeline that builds microservice images, runs helm upgrade, and deploys to EKS. |
projects/Uber-Clone-DevSecOps/jenkinsfile | Pipeline that adds staticโcode analysis, image signing, and RBACโlimited deployment steps. |
CKAD-exercises/i.crd.md | Documentation of Custom Resource Definition concepts; no runtime artifacts. |
How To Use It
- Clone the repository ``
bash git clone https://github.com/moses-y/kubernetes-projects-learning``
- Install required tools (as listed in the root
README.md):kubectlโ follow the guide at <https://kubernetes.io/docs/tasks/tools/>. Local cluster:minikube start,kind create cluster, or installk3s. * Enablekubectlautocompletion for productivity.
- Run a learning module โ navigate to a folder and apply the included manifest: ``
bash cd learning/What-is-Pod-in-Kubernetes kubectl apply -f pod.yaml``
- Execute a project pipeline โ from a project directory, launch Jenkins (or your preferred CI server) and trigger the
Jenkinsfile. Example for the microservices project: ``bash cd projects/10-microservices-deployment-eks # Assuming Jenkins is running; use the Jenkins UI or CLI to start the pipeline defined in Jenkinsfile``
- Explore CKAD exercises โ open the markdown files (
CKAD-exercises/*.md) for theory, then practice with the corresponding YAML manifests.
RealโWorld Use
A junior DevOps team can spin up a Minikube cluster, work through the learning/ path to understand Pods, Deployments, and Services, then migrate to the projects/ folder to see how a Jenkinsโdriven pipeline builds and deploys a multiโservice application to an actual cloud EKS cluster. The structured README and exercise set also make it a handy primer for candidates preparing for the CKAD certification.
Code Health & Issues
The deterministic staticโanalysis run for this repo produced the following findings (quoted from the pipeline):
- No test files detected โ untested code paths repositoryโwide.
- No LICENSE file โ unclear usage/redistribution rights (located at root).
Additional hygiene observations (derived from the fileโstructure audit):
- CI present: Jenkins pipelines exist in
projects/*/Jenkinsfile/projects/*/jenkinsfile. - Dockerfile absent: images must be built externally or via the Jenkins pipelines.
- Lockfile absent: no
package-lock.json,Gemfile.lock, etc.; dependency versions are declared only in project READMEs. - Committed secrets: none found.
The Bottom Line
This repo is a solid, wellโstructured learning sandbox for anyone needing handsโon Kubernetes practiceโfrom core concepts to CKAD exam prep and simple CIโdriven deployments. Its main drawbacks are the missing license and lack of test coverage, which limit its suitability for production adoption without a legal review and an external testing strategy. It works best as a training resource or a starting point that teams can fork, add their own tests and licensing, and extend with their own CI/CD pipelines.