Azure Kubernetes Service (AKS) with HELM

Helm installs charts into Kubernetes, creating a new release for each installation. And to find new charts, you can search Helm chart repositories.

HELM Installation

# getting the latest version of HELM
wget https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz
# unzip the downloaded compressed files
tar -zxvf helm-v3.7.1-linux-amd64.tar.gz
# mv the decompressed files to /usr/bin/helm
sudo mv linux-amd64/helm /usr/bin/helm
# check HELM version
helm version

HELM Chart Create

# create the namespace for the HELM chart
kubectl create ns secondhelmchart
# deploy the HELM chart in the namespace
helm install --namespace firsthelmrchart firsthelmrelease firsthelmchart/ --values firsthelmchart/values.yaml
# check what parameters could be added after "helm install"
helm install -h

HELM Chart Upgrade

# adding environment varisbles in values.yaml
env:
— name: service_name
value: ‘NGINX-BACKEND’
# making use of the environment variables in templates/deployment.yaml
env:
{{- toYaml .Values.env | nindent 12 }}
# upgrade the current installation with
helm upgrade <release name you had> .

HELM Upgrade with Packaging

# ensure the current directory is in the chart directory
cd <helm chart directory>
# package the chart
helm package .
# list the compressed package
ls
# upgrade the current chart
helm upgrade <current release name> <new package name>
# check the package
helm list

HELM Release Rollback

# check the current HELM chart version
helm list
# rollback the latest HELM release. This should show in "REVISION". The previous upgrade was revision 2 and now rollback as revision 3.
helm rollback <release name> 1
# check the current HELM chart version
helm list

Deploy HELM Chart with Different Release

# search for a chart in all the repositories
helm search repo <keyword>
# install the release from the repository/chart
helm install --namespace <namespace name, but this is optional> <release name> <repository name>/<chart name>
# check the release
helm list --all-namespaces

Upload HELM Chart to Local Repository

cd <HELM chart directory> && git init.
# make an index.yaml for the GitHub page
helm repo index --url https://<GitHub name>.github.io/<GitHub project name>/ .
# commit the files and push
git add * && git commit -m "first commit" && git push
# check HELM local repository
helm repo list
# add GitHub page link as the HELM local repository URL
helm repo add <repo name> https://<GitHub name>.github.io/<GitHub project name>/
# search within HELM local repository
helm search repo <keyword>

Upload HELM Chart to Azure Container Registry (ACR)

# prerequisite steps
export HELM_EXPERIMENTAL_OCI=1
# login to ACR HELM Repo
helm registry login <ACR full URL> --username xxx --password xxx
# push HELM chart to ACR HELM repo
helm push <HELM chart package> oci://<ACR full URL>/helm
# check whether the HELM chart is in ACR HELM repo
az acr repository show -n <ACR name> --repository helm/<HELM chart name>

Search HELM Repository

# add repo URLs to local searching paths
helm repo add stable https://charts.helm.sh/stable
# check the local searching path to see whether the URLs is showing
helm repo list
# try to find a chart within the added repositories
helm search repo <chart name>
# search the chart on HELM Hub
helm search hub nginx

--

--

--

Learning new things about Kubernetes every day. Hopefully, the learning notes could help people on the same journey!

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

How to Take Part in the MegaChimpy?

Use AWS Glue to make CloudTrail Parquet partitions

A Docker Machine Example

Data scientist’s guide to efficient coding in Python

*Task-18 Description*📄

Updates, Recap, and More on the Fusible Testnet Program

CS373 Spring 2022: Joriann Bassi

Python variables and assignments — Variables don’t store values!

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Jonathan

Jonathan

Learning new things about Kubernetes every day. Hopefully, the learning notes could help people on the same journey!

More from Medium

Best Practices for AKS cluster security and upgrades

Self-Host Your Azure Pipeline Agents in Kubernetes and Scale Them On Demand

Building up a hardened production-ready AKS cluster: 01 — Identities

Deploying your app using Shipa and Azure Pipelines