Lesson 01 Introduction to Helm
Theme:

Homework

Complete these tasks before Lesson 02. They reinforce the concepts from this lesson and prepare you for building your own charts.

Task 1: Raw Manifests vs Helm — Side-by-Side Comparison

Goal: Experience the difference between deploying with raw kubectl apply and deploying with Helm.

Instructions

  1. Create a directory called raw-nginx/ and write three YAML manifests by hand:
    • deployment.yaml — an NGINX Deployment with 1 replica
    • service.yaml — a ClusterIP Service targeting port 80
    • configmap.yaml — a ConfigMap with a custom index.html containing "Hello from raw kubectl!"
  2. Deploy with: kubectl apply -f raw-nginx/
  3. Verify it works: kubectl port-forward svc/raw-nginx 8081:80 and open http://localhost:8081
  4. Now deploy the same NGINX via Helm: helm install helm-nginx bitnami/nginx --set service.type=ClusterIP
  5. Write a short comparison (100–200 words) covering:
    • How many commands and files each approach required
    • What happens if you need to change the replica count in each approach
    • How you would roll back each approach
  6. Clean up both deployments:
    kubectl delete -f raw-nginx/
    helm uninstall helm-nginx

Self-check

Task 2: Explore Artifact Hub

Goal: Learn to evaluate and discover community charts on Artifact Hub.

Instructions

Visit artifacthub.io and find 5 Helm charts for different use cases. For each chart, document:

  1. Chart name and publisher
  2. What the chart deploys (one sentence)
  3. Current chart version and app version
  4. Whether the publisher is verified
  5. Number of stars (approximate)

Deliverable

A table in this format:

Chart Publisher Purpose Chart Version Verified?
nginx Bitnami NGINX web server 18.x.x Yes
... ... ... ... ...

Suggestion

Try to pick charts from different categories: a database (e.g., PostgreSQL), a monitoring tool (e.g., Prometheus), a CI/CD tool (e.g., Argo CD), a message broker (e.g., RabbitMQ), and an ingress controller (e.g., ingress-nginx).

Self-check

Task 3: Upgrade and Rollback Cycle

Goal: Practice the Helm release lifecycle — install, upgrade, rollback, and history inspection.

Instructions

  1. Install NGINX with 1 replica:
    helm install cycle-nginx bitnami/nginx \
      --set service.type=ClusterIP \
      --set replicaCount=1
  2. Verify the deployment has 1 pod:
    kubectl get pods -l app.kubernetes.io/instance=cycle-nginx
  3. Upgrade to 3 replicas:
    helm upgrade cycle-nginx bitnami/nginx \
      --set service.type=ClusterIP \
      --set replicaCount=3
  4. Verify 3 pods are running:
    kubectl get pods -l app.kubernetes.io/instance=cycle-nginx
  5. View the release history:
    helm history cycle-nginx
  6. Roll back to revision 1 (1 replica):
    helm rollback cycle-nginx 1
  7. Verify the rollback — should be back to 1 pod:
    kubectl get pods -l app.kubernetes.io/instance=cycle-nginx
    helm history cycle-nginx
  8. Clean up:
    helm uninstall cycle-nginx

Questions to Answer

  1. After the rollback, how many revisions does helm history show? Why?
  2. What is the status of revision 2 after the rollback?
  3. If you ran helm rollback cycle-nginx 2 after step 7, what would happen?

Self-check

Grading Criteria

Criterion Excellent Satisfactory Needs Work
Task 1: Comparison All 3 raw manifests work, Helm deploy works, comparison is detailed and accurate Deploys work but comparison is thin or missing one point One or more deploys fail, or comparison is missing
Task 2: Artifact Hub 5 charts from 3+ categories, all fields complete, includes non-Bitnami chart 5 charts documented but from fewer categories or missing a field Fewer than 5 charts or mostly incomplete entries
Task 3: Upgrade/Rollback Full cycle completed, all 3 questions answered correctly Cycle completed but questions partially answered Cycle incomplete or questions unanswered

Submission

There is no formal submission for this course. These tasks are for your own development. However:

Next lesson: Lesson 02 — building your first Helm chart from scratch, exploring the template language and chart structure in depth.