Challenge 2 - Helm

< Previous Challenge        Next Challenge>

Introduction

Helm is the package manager for Kubernetes. It was created by Deis (now a part of Microsoft) and is a Graduated Project in the CNCF.

Key Concepts

Description

In this challenge, you will create a new chart, deploy it and then also deploy an existing chart from a remote repository. These charts will setup an Ingress Controller as well as a sample app.

  1. Create a new chart
    • HINT: Use helm template <chart> to render a chart locally and display the output
  2. Deploy the chart on your K8S cluster
  3. Override default nginx image with https://hub.docker.com/r/stefanprodan/podinfo
    • HINT: note that this application runs on port 9898
    • HINT: You will need to replace the appVersion in the Chart.yaml to match the tag version from Dockerhub
  4. Install NGINX Ingress Controller using Helm
  5. Update your created chart to add the Ingress route
    • HINT: This updates the original chart you created
    • HINT: You only need to modify the values.yaml file
    • HINT: The default annotations need to be commented back in
    • HINT: Use nip.io for DNS resolution
  6. Verify App is available at myapp.$INGRESS_IP.nip.io
    • HINT: INGRESS_IP=$(kubectl get service -n ingress-basic nginx-ingress-ingress-nginx-controller -o json | jq '.status.loadBalancer.ingress[0].ip' -r)

Success Criteria

Hints

  1. Helm commands
  2. Getting started with Helm charts