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.md and 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.md through j.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 include Jenkinsfiles, README.mds and deployment artifacts such as bind.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 for kubectl apply against any Kubernetes API server (local clusters via Minikube/kind, or cloud clusters).

WHAT EACH FILE IS RESPONSIBLE FOR โ€“

File/FolderResponsibility
learning/What-is-Pod-in-Kubernetes/pod.yamlMinimal pod definition for teaching basics.
learning/Deploying-an-Application-on-Kubernetes/deployment.yamlExample Deployment with a container image placeholder.
projects/10-microservices-deployment-eks/JenkinsfileCI pipeline that builds microservice images, runs helm upgrade, and deploys to EKS.
projects/Uber-Clone-DevSecOps/jenkinsfilePipeline that adds staticโ€‘code analysis, image signing, and RBACโ€‘limited deployment steps.
CKAD-exercises/i.crd.mdDocumentation of Custom Resource Definition concepts; no runtime artifacts.

How To Use It

  1. Clone the repository ``bash git clone https://github.com/moses-y/kubernetes-projects-learning ``
  1. 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 install k3s. * Enable kubectl autocompletion for productivity.
  1. 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 ``
  1. 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 ``
  1. 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.