Back to path
MediumWorking system ~18h· 5 milestones

Build a GitOps CI/CD pipeline to Kubernetes

A team deploys by SSH-ing into servers and running scripts, and nobody is sure what is actually running where. You replace that with a pipeline where a merge to main automatically builds, tests, and deploys to Kubernetes, and the cluster always matches Git.

CI/CDDockerKubernetesHelmGitOpsRollback strategyObservability (Prometheus/Grafana)Cloud cost modelingIncident runbooks

What you'll build

A complete path from commit to production: CI that builds and tests a container, a registry, a Kubernetes deploy driven by GitOps, and a one-click rollback by reverting a commit.

See how we teach, before you sign up

You don't just get code dumped on you. Every starter file and every solution is explained line-by-line, in plain English. Here's one real file from this project:

config-repo/chart/Chart.yamlyaml
apiVersion: v2
name: webapp
description: GitOps-deployed web service
type: application
version: 0.1.0
appVersion: "1.0.0"

Reading this file

  • apiVersion: v2Marks this as a Helm 3 chart. Every chart needs this file so Helm knows how to package and version it.
  • version: 0.1.0The chart version. Bump it whenever the templates change so installs are tracked and repeatable.
  • appVersion: "1.0.0"The version of the app being deployed, kept separate from the chart version because the two change independently.

Minimal chart metadata, bump the version when the templates change.

That's 1 of 9 explained code blocks in this single project.

The build, milestone by milestone

  1. 1

    Containerize & test in CI

    5 guided steps

    GitOps deploys whatever image tag is in Git. That tag is only trustworthy if CI proved the image before it was published.

  2. 2

    Template the deploy

    5 guided steps

    Hand-edited YAML drifts across environments. A chart with values files makes staging and prod the same template with different inputs.

  3. 3

    Go GitOps

    5 guided steps

    When a controller continuously reconciles the cluster to Git, drift heals itself and every change is a reviewed, auditable commit instead of a manual kubectl command.

  4. 4

    See it and price it

    5 guided steps

    A GitOps pipeline that deploys blind is half a system: you need to see request rate, errors, and latency to know a deploy is healthy, and you need a cost number so the cluster is a deliberate spend, not a surprise invoice.

  5. 5

    Make failure cheap

    5 guided steps

    A deploy system is only as good as its rollback. If reverting is a panic, people stop deploying. GitOps makes rollback a `git revert`.

What's inside when you start

4 starter files, ready to clone
5 guided milestones
5 full reference solutions
9 code blocks explained line-by-line
5 "is it working?" checks
4 interview questions it prepares you for

You'll walk away with

A repo with a CI pipeline and a Helm chart with per-environment values
A config repo reconciled to the cluster by a GitOps controller
A demo of an automated deploy triggered by a merge
A Grafana dashboard showing rate/errors/latency for the deployed service
A monthly cost note broken down per environment with the top line item flagged
A documented incident runbook (detection, revert, recovery) with measured time-to-recovery

This is portfolio-grade. Build it free.

Sign up to unlock every milestone step-by-step, the code skeletons, full reference solutions, and checkable tasks, with your progress saved as you build.

Start building