In this section, you prepare a SUSE Linux Arm64 virtual machine to work with Helm by installing Docker, kubectl, Helm, and KinD. You then create and verify a local Kubernetes cluster that you use in later sections of this Learning Path to validate Helm workflows.
Update the system packages and install dependencies:
sudo zypper refresh
sudo zypper update -y
sudo zypper install -y curl git tar gzip
Enable the SUSE Containers Module to ensure that Docker and container-related tools are fully supported.
sudo SUSEConnect -p sle-module-containers/15.5/arm64
sudo SUSEConnect --list-extensions | grep Containers
Verify that the output shows the Containers module as Activated.
Docker is required to run KinD and the Kubernetes control plane components.
Install Docker, start the service, and add your user to the docker group so that Docker commands can be run without sudo:
sudo zypper refresh
sudo zypper install -y docker
sudo systemctl enable --now docker
sudo usermod -aG docker $USER
exit
Exit the current shell and reconnect to the virtual machine so that the group membership change takes effect. Then verify that Docker is running:
docker ps
Output similar to the following indicates that Docker is installed and accessible:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Install kubectl, the command-line tool for interacting with Kubernetes clusters, compiled for the Arm64 architecture.
curl -LO https://dl.k8s.io/release/v1.30.1/bin/linux/arm64/kubectl
chmod +x kubectl
sudo mv kubectl /usr/local/bin/
Confirm that kubectl is installed and accessible from the command line:
kubectl version --client
Output similar to the following indicates that kubectl is installed correctly:
Client Version: v1.30.1
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Install Helm using the official Helm installation script to get a verified and up-to-date release.
curl -sSfL https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh
chmod 755 ./get_helm.sh
./get_helm.sh
Confirm that Helm is installed correctly and ready to use.
helm version
You should see an output similar to:
version.BuildInfo{Version:"v3.19.2", GitCommit:"8766e718a0119851f10ddbe4577593a45fadf544", GitTreeState:"clean", GoVersion:"go1.24.9"}
Install KinD (Kubernetes-in-Docker) to run a lightweight Kubernetes cluster locally on your Arm64 virtual machine:
curl -Lo kind https://kind.sigs.k8s.io/dl/v0.30.0/kind-linux-arm64
chmod +x kind
sudo mv kind /usr/local/bin/
Create a local Kubernetes cluster named helm-lab that you use to deploy Helm charts:
kind create cluster --name helm-lab
This step verifies that the Kubernetes cluster is operating correctly and is fully prepared to run workloads.
kubectl get nodes
You should see an output similar to:
NAME STATUS ROLES AGE VERSION
helm-lab-control-plane Ready control-plane 23h v1.34.0
The node should be in the Ready state. If not, retry the command after waiting 30 seconds for the cluster to fully initialize.
You now have a fully working local Kubernetes cluster running on an Arm64-based virtual machine.
You’ve successfully set up your development environment by:
Next, you’ll validate Helm functionality by performing install, upgrade, and uninstall workflows on your Arm64 Kubernetes cluster.