helm install –debug –dry-run Example
This tutorial guides you on how to check the generated manifests of a helm release without installing the helm chart by using –debug and –dry-run flags combined. Let’s learn how to using helm install –debug –dry-run with example.
helm install –debug –dry-run Example
As mentioned in the helm documentation, if you wanted to test the chart installation without actually installing anything, you need to use the helm install command with –debug and –dry-run flags combined.
Before you begin, download GitHub sample Hello Helm for our exercise.
$ git clone https://github.com/cloudnativedevops/demo.git Cloning into 'demo'... remote: Enumerating objects: 885, done. remote: Total 885 (delta 0), reused 0 (delta 0), pack-reused 885 Receiving objects: 100% (885/885), 330.78 KiB | 13.78 MiB/s, done. Resolving deltas: 100% (363/363), done.
Verify, whether the Helm Chart deployment YAML files are there of the demo application in the following path /demo/hello-helm/k8s/demo as shown below.
~/demo/hello-helm/k8s/demo (sneppets)$ ls Chart.yaml production-values.yaml staging-values.yaml templates values.yaml
The subdirectory /k8s/demo contains the Kubernetes manifest files to deploy the demo application. The below command will actually send the helm chart to the tiller server, where the templates are rendered. But it won’t install the chart instead returns the generated manifests just to check.
$ helm install --debug --dry-run demo /home/sneppets/demo/hello-helm/k8s/demo/ install.go:173: [debug] Original chart version: "" install.go:190: [debug] CHART PATH: /home/sneppets/demo/hello-helm/k8s/demo NAME: demo LAST DEPLOYED: Tue Apr 6 11:30:59 2021 NAMESPACE: default STATUS: pending-install REVISION: 1 TEST SUITE: None USER-SUPPLIED VALUES: {} COMPUTED VALUES: container: image: cloudnatived/demo name: demo port: 8888 tag: hello environment: development replicas: 1 HOOKS: MANIFEST: --- # Source: demo/templates/service.yaml apiVersion: v1 kind: Service metadata: name: demo-service labels: app: demo spec: ports: - port: 80 protocol: TCP targetPort: 8888 selector: app: demo type: LoadBalancer --- # Source: demo/templates/deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: demo spec: replicas: 1 selector: matchLabels: app: demo template: metadata: labels: app: demo environment: development spec: containers: - name: demo image: cloudnatived/demo:hello ports: - containerPort: 8888 env: - name: environment value: development
You can also note from the above response that the STATUS of helm install –debug –dry-run command seen as “pending-install“. Therefore, helm dry run install did not actually install the chart.
Also make sure that Kubernetes cluster is reachable when you are trying helm install dry run command. Otherwise you might get the following error as shown below.
$ helm install --debug --dry-run demo /home/sneppets/demo/hello-helm/k8s/demo/ install.go:173: [debug] Original chart version: "" install.go:190: [debug] CHART PATH: /home/sneppets/demo/hello-helm/k8s/demo Error: Kubernetes cluster unreachable: Get "https://34.80.233.207/version?timeout=32s": dial tcp 34.80.233.207:443: i/o timeout helm.go:81: [debug] Get "https://34.80.233.207/version?timeout=32s": dial tcp 34.80.233.207:443: i/o timeout Kubernetes cluster unreachable helm.sh/helm/v3/pkg/kube.(*Client).IsReachable /home/circleci/helm.sh/helm/pkg/kube/client.go:115 helm.sh/helm/v3/pkg/action.(*Install).Run /home/circleci/helm.sh/helm/pkg/action/install.go:176 main.runInstall /home/circleci/helm.sh/helm/cmd/helm/install.go:242 main.newInstallCmd.func2 /home/circleci/helm.sh/helm/cmd/helm/install.go:120 github.com/spf13/cobra.(*Command).execute /go/pkg/mod/github.com/spf13/[email protected]/command.go:850 github.com/spf13/cobra.(*Command).ExecuteC /go/pkg/mod/github.com/spf13/[email protected]/command.go:958 github.com/spf13/cobra.(*Command).Execute /go/pkg/mod/github.com/spf13/[email protected]/command.go:895 main.main /home/circleci/helm.sh/helm/cmd/helm/helm.go:80 runtime.main /usr/local/go/src/runtime/proc.go:204 runtime.goexit /usr/local/go/src/runtime/asm_amd64.s:1374
Therefore make sure that you have created Kubernetes cluster. And connect to that cluster using the following gcloud command in case of GKE cluster.
$ gcloud container clusters get-credentials clus1 --zone europe-north1-c --project sne5g21 Fetching cluster endpoint and auth data. kubeconfig entry generated for clus1.
That’s it. Hope it helped 🙂
You’ll also like:
- List all versions of helm chart available using helm search repo
- Docker EXPOSE Port only to the Host on Google Cloud
- Pull environment variables to the Helm charts
- Copy Files between Host and Docker Container
- What is ImagePullBackOff status on a Kubernetes pod ?
- Run ionic app in android studio emulator
- List all Containers running in Kubernetes Pod
- How to find which users belongs to a specific group in linux
- Delete or uninstall specific helm chart resource
- Error: helm install unknown flag: –name
- Build a Docker Image with a Dockerfile and Cloud Build in GCP?
- How to create GCP project on Google Cloud Platform
- no matches for kind “Deployment” in version “extensions/v1beta1”
- Helm 3 – Not a valid chart repository or cannot be reached: failed to fetch : 404 Not Found
- Is it possible to change Google Cloud Platform Project ID ?
- Purpose of –purge flag in helm delete command ?
- Make manual payment or pay early for your Google Cloud Platform charges
- Open specific port such as 8082 in Google Compute Engine
- Delete or unset clusters contexts and users entries from kubectl config