Skip to content

Installing Helm and Repositories

Overview

Install Helm 3, point it at your kubeconfig cluster, add a chart repository, and search/pull a chart.

Install via package manager or the official script. Configure repos (helm repo add) or use OCI registries (oci://…). Plugins extend the CLI (for example helm-diff).

This is a core tutorial in Module 2 · Installing Helm of the REBASH Academy Helm for Kubernetes Engineers series — written for Cloud, DevOps, Platform, and SRE engineers.

Prerequisites

Learning Objectives

By the end of this tutorial, you will be able to:

  • Install and verify helm version
  • helm repo add / update / search
  • List plugins concept
  • Confirm cluster context

Architecture

This topic’s control points and relationships are shown below.

Helm architecture

Theory

What it is

Installing Helm means putting the Helm 3 CLI on your workstation or CI image and pointing it at a Kubernetes cluster via the same kubeconfig that kubectl uses. A chart repository is a discoverable index of charts (traditionally https://… with index.yaml). OCI registries store charts as OCI artefacts. Plugins extend the CLI (for example helm-diff to preview upgrades).

Vocabulary for day-one ops:

Action Purpose
helm version Confirm client (and optional server-side notes)
helm repo add / update Register and refresh HTTP chart indexes
helm search repo Find charts by name
helm pull Download a chart archive locally
helm plugin Manage CLI extensions

Why it matters

Every later tutorial assumes a working Helm binary and a deliberate chart source policy. In enterprises you rarely pull random community charts into production without review: you pin versions, prefer approved OCI mirrors, and run Helm from CI/GitOps identities — not from personal laptops for production changes. Getting install and repo hygiene right early prevents “works on my machine” chart versions and surprise dependency downloads.

How it works

  1. Install Helm via a package manager (brew, apt packages, etc.) or the official get-helm-3 script.
  2. Verify with helm version (expect v3.x).
  3. Confirm kubectl config current-context matches the cluster you intend to use.
  4. Add repositories (helm repo add bitnami …) or log in to OCI registries as required.
  5. helm repo update refreshes indexes; helm search / helm pull consume them.
  6. Optionally install plugins into Helm’s plugin directory for workflow extras.

Helm does not need a special server component in the cluster. If kubectl can reach the API, Helm can manage releases (subject to RBAC).

Key concepts and comparisons

Source How you use it Typical fit
Local path helm install ./mychart Chart development
HTTP repo helm repo add + helm install bitnami/… Public/vendor charts
OCI helm install oci://registry/… Enterprise artefact stores
Plugin helm plugin install Diff, secrets helpers, etc.

Common pitfalls

  • Installing Helm 2 tooling by accident — always verify major version 3.
  • Adding a repo once and never running helm repo update, then wondering why a chart version is missing.
  • Searching the wrong repo name prefix after helm repo add.
  • Assuming plugins are required for core install/upgrade — they are optional helpers.
  • Pointing Helm at the wrong kubecontext and installing into the wrong cluster.

Hands-on Lab

Create a workspace for this tutorial.

mkdir -p ~/rebash-helm/module-02 && cd ~/rebash-helm/module-02

Focus: Verify Helm client and practise repository add/update/search

Step 1 – Check Helm and add a repository

helm version
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
helm search repo bitnami/nginx --versions | head -n 5

Step 2 – Pull a chart locally and inspect without installing from remote blindly

helm pull bitnami/nginx --version $(helm search repo bitnami/nginx --versions -o json | python3 -c 'import sys,json; print(json.load(sys.stdin)[0]["version"])') --untar
ls -la nginx
helm template inspect-nginx ./nginx -n rebash-helm | head -n 30
kubectl create namespace rebash-helm
helm lint ./nginx

Final step – Cleanup note

rm -rf nginx nginx-*.tgz 2>/dev/null || true
helm repo remove bitnami 2>/dev/null || true
kubectl delete namespace rebash-helm --ignore-not-found
# Workspace kept for notes; remove with: rm -rf "$(pwd)" when finished

Validation

  • Lab commands run under ~/rebash-helm/module-02/
  • You can explain each Theory section in your own words
  • You used modern tooling where it applies to this topic
  • You can describe one production failure mode for this topic

Code Walkthrough

Production practice for Installing Helm and Repositories always combines:

  1. Inspect before you change (status, plan, logs, dry-run)
  2. Prefer reversible, documented changes (Git, IaC, drop-ins, version pins)
  3. Capture evidence (command output, pipeline logs) for handovers
  4. Prefer current tools and APIs over legacy shortcuts
  5. Least privilege — escalate credentials only when required

Keep runbooks short enough to follow under pressure. Automate checks; keep humans for judgement.

Security Considerations

  • Treat credentials and tokens for helm as privileged — never commit them
  • Prefer short-lived auth (OIDC, roles, SSO) over long-lived keys
  • Validate blast radius before apply/deploy/delete operations
  • Restrict who can approve production changes
  • Collect audit logs; limit who can read sensitive traces

Common Mistakes

Installing Helm 2 tooling by accident — always verify major version 3.

Validate assumptions against the Theory section and official docs before changing production.

Adding a repo once and never running helm repo update, then wondering why a chart versio

Lab shortcuts (open security groups, admin roles, skip approvals) must not ship unchanged.

Changing production without a rollback path

Always know how to revert (previous artefact, prior release, state rollback, DNS failback).

Best Practices

  • Encode Installing Helm and Repositories changes as code and review them in pull requests
  • Pin versions (images, modules, actions, provider plugins)
  • Separate environments with clear promotion gates
  • Alert on symptoms with runbooks attached
  • Destroy lab resources; tag everything with owner and expiry where possible

Troubleshooting

Symptom Likely cause Fix
Auth / permission denied Wrong identity, policy, or scope Check caller identity, roles, and least-privilege policies
Timeout / no route Network, DNS, security group, or endpoint Trace path, DNS, and allow-lists before retrying
Drift / unexpected plan Manual change or wrong state/workspace Reconcile desired vs actual; avoid click-ops on managed resources
Pipeline/job red Flaky step, cache, or missing secret Read failing step logs; bisect recent workflow/config changes
Cost spike Idle load balancer, NAT, oversized compute Inventory billable resources; stop/delete labs promptly

Summary

Installing Helm and Repositories is essential for Cloud and DevOps engineers working with helm. Practise the lab until the inspection and change path is muscle memory, then continue the track.

Interview Questions

  1. What does helm repo add store on your machine?
  2. Why run helm repo update before installing?
  3. What is the difference between searching a repo and pulling a chart?
  4. How can a compromised chart repository harm you?
  5. When should you vendor charts instead of installing straight from the internet?

Sample answer — question 2

Repositories are indexes of chart locations. update refreshes local cache so you see current chart versions rather than stale index data.

Sample answer — question 4

A malicious repo can serve charts that escalate privileges. Prefer HTTPS repos you trust, pin versions, verify provenance when available, and review rendered YAML.

References