Skip to main content

Assignment 1: Install an app from a public chart

Goal: install, configure, upgrade, and roll back a real application on the lab cluster using a community Helm chart — exercising the full release lifecycle.

Where: from the Jumpbox (where helm and the cluster kubeconfig are ready), targeting the live Kubernetes cluster. Use your own namespace so you don't collide with others.

Tasks

  1. Add a public chart repository (e.g. Bitnami) and update your local cache. Search it for a simple app (nginx is fine).
  2. Preview first: render the chart with helm template (or --dry-run) into a file and skim the manifests it would create.
  3. Install it as a named release into your own namespace (--create-namespace). Confirm the Pods/Service exist and are Ready with kubectl.
  4. Provide overrides via a values file you keep in Git (Module 4): set the replica count to 2 and the service type to ClusterIP. Upgrade the release to apply them.
  5. Make a deliberately bad upgrade (e.g. a non-existent image tag) with --atomic and observe that Helm rolls it back. Then inspect helm history and confirm which revision is live.
  6. Roll back to your first good revision explicitly, then helm uninstall and confirm the namespace's objects are gone.

Deliverable

A short markdown note containing: the commands you ran, your values file, trimmed output showing the release at each stage (installed → upgraded → failed upgrade auto-rolled-back → rolled back → uninstalled), and one sentence on what --atomic did.

Acceptance criteria — you're done when:

  • helm list -n <your-ns> showed your release as deployed after install, and kubectl get all showed Ready Pods.
  • Your overrides came from a values file (not only --set), and you can show the replica count changed after helm upgrade.
  • You captured a failed --atomic upgrade and showed (via helm history) that the live revision did not become the broken one.
  • You performed an explicit helm rollback to a chosen revision and confirmed it with helm history.
  • After helm uninstall, kubectl get all -n <your-ns> shows the app's objects are gone.
  • Every claim is backed by command output a grader could reproduce.

Hints

  • helm repo add/update/search, helm template, helm install --create-namespace, helm upgrade --atomic --timeout, helm history, helm rollback, helm uninstall.
  • Always helm template before you install — read it like a diff.
  • Blocked for >~30 min after re-reading the lessons? Bring what you've tried (commands + output) to your mentor.