{"id":359,"date":"2026-01-12T01:34:00","date_gmt":"2026-01-12T01:34:00","guid":{"rendered":"https:\/\/blog.ngocha.biz\/?p=359"},"modified":"2026-01-12T01:34:00","modified_gmt":"2026-01-12T01:34:00","slug":"install-configure-helm-kubernetes","status":"publish","type":"post","link":"https:\/\/blog.ngocha.biz\/?p=359","title":{"rendered":"How to set Git Upstream For a Respository and a Branch"},"content":{"rendered":"<p>This post walks you through the steps to install Helm on different platforms and shows you how to verify the installation using Helm charts.<\/p>\n<p>By the end of this guide, you will have learned:<\/p>\n<ul>\n<li>The prerequisites and permissions required for using Helm<\/li>\n<li>How to install Helm using different methods<\/li>\n<li>How to add a chart repository and search for Helm charts<\/li>\n<li>How to deploy a sample Helm chart to validate your setup<\/li>\n<\/ul>\n<h2 id=\"helm-prerequisites\">Helm Prerequisites<\/h2>\n<p>You should have the following before getting started with the Helm setup.<\/p>\n<ol>\n<li>A running <a href=\"https:\/\/devopscube.com\/setup-kubernetes-cluster-kubeadm\/\" rel=\"noreferrer noopener\">Kubernetes cluster<\/a>.<\/li>\n<li>The Kubernetes cluster API endpoint should be reachable from the machine you are running Helm.<\/li>\n<li>You should be able to authenticate to the cluster using kubectl, and your user should have cluster-admin permissions<\/li>\n<\/ol>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\">Why cluster admin permissions?<\/p>\n<p>Many Helm charts require elevated permissions to install components like RBAC resources, CustomResourceDefinitions (CRDs), or cluster-wide resources.<\/p>\n<p>Cluster-admin permissions ensure Helm can perform all necessary operations without permission conflicts<\/p><\/div>\n<\/div>\n<h2 id=\"method-1-install-helm-using-bash-script\">Method 1: Install Helm Using Bash Script<\/h2>\n<p>I recommend this method if you are setting up a test environment in your local workstation or a server. For project requirements, please follow the binary installation of the specific version that is explained in the next section.<\/p>\n<div class=\"kg-card kg-callout-card kg-callout-card-green\">\n<div class=\"kg-callout-text\"><b><strong style=\"white-space: pre-wrap;\">Note: <\/strong><\/b>The workstation you are running should have the <a href=\"https:\/\/devopscube.com\/kubectl-set-context\/\" rel=\"noreferrer\">kubectl context<\/a> set to the cluster you intend to manage with Helm.<\/div>\n<\/div>\n<p><strong>Step 1:<\/strong> Download the latest Helm installation script. <\/p>\n<pre><code class=\"language-bash\">curl -fsSL -o get_helm.sh https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-4<\/code><\/pre>\n<p><strong>Step 2:<\/strong> Add execute permissions to the downloaded script. <\/p>\n<pre><code class=\"language-bash\">chmod +x get_helm.sh<\/code><\/pre>\n<p><strong>Step 3:<\/strong> Execute the installation script. This script will automatically find the right binary for your system.<\/p>\n<pre><code class=\"language-bash\">.\/get_helm.sh<\/code><\/pre>\n<p><strong>Step 4:<\/strong> Validate Helm installation by executing the Helm command.<\/p>\n<pre><code class=\"language-bash\">helm version<\/code><\/pre>\n<h2 id=\"method-2-install-helm-4-from-binary\">Method 2: Install Helm 4 From Binary<\/h2>\n<p>This method is recommended for project requirements where you can have a specific version of Helm installed across all the environments.<\/p>\n<p>For example, if you are using <a href=\"https:\/\/devopscube.com\/jenkins-architecture-explained\/\" rel=\"noreferrer noopener\">Jenkins<\/a> for Helm deployments, ensure the <a href=\"https:\/\/devopscube.com\/setup-slaves-on-jenkins-2\/\" rel=\"noreferrer noopener\">Jenkins agent <\/a>where the Helm command runs has kubectl configured with admin permissions.<\/p>\n<p><strong>Step 1: <\/strong>Head over to the <a href=\"https:\/\/github.com\/helm\/helm\/releases?ref=devopscube.com\" rel=\"noreferrer noopener\">GitHub Helm release page<\/a> and copy the Linux amd64 link for the required version.<\/p>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" src=\"https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/2026\/01\/image-19.png\" class=\"kg-image\" alt=\"helm installation binary - release page\" loading=\"lazy\" width=\"2000\" height=\"1168\" srcset=\"https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w600\/2026\/01\/image-19.png 600w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w1000\/2026\/01\/image-19.png 1000w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w1600\/2026\/01\/image-19.png 1600w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/2026\/01\/image-19.png 2278w\" sizes=\"auto, (min-width: 720px) 720px\"><\/figure>\n<p><strong>Step 2: <\/strong>Download the binary using wget.<\/p>\n<pre><code class=\"language-bash\">wget -O helm.tar.gz https:\/\/get.helm.sh\/helm-v4.0.4-linux-amd64.tar.gz<\/code><\/pre>\n<p><strong>Step 3: <\/strong>Untar the downloaded file.<\/p>\n<pre><code class=\"language-bash\">tar -zxvf helm.tar.gz<\/code><\/pre>\n<p><strong>Step 4:<\/strong> Move the helm executable to the bin directory.<\/p>\n<pre><code class=\"language-bash\">sudo mv linux-amd64\/helm \/usr\/local\/bin\/helm<\/code><\/pre>\n<p><strong>Step 5:<\/strong> Validate by executing the helm command.<\/p>\n<pre><code class=\"language-bash\">helm<\/code><\/pre>\n<h2 id=\"method-3-install-helm-from-package-managers\">Method 3: Install Helm From Package Managers<\/h2>\n<p>For Mac,<\/p>\n<pre><code class=\"language-bash\">brew install helm<\/code><\/pre>\n<p>To install Helm on Ubuntu, use the following commands.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install curl gpg apt-transport-https --yes\n\ncurl -fsSL https:\/\/packages.buildkite.com\/helm-linux\/helm-debian\/gpgkey | gpg --dearmor | sudo tee \/usr\/share\/keyrings\/helm.gpg &gt; \/dev\/null\n\necho \"deb [signed-by=\/usr\/share\/keyrings\/helm.gpg] https:\/\/packages.buildkite.com\/helm-linux\/helm-debian\/any\/ any main\" | sudo tee \/etc\/apt\/sources.list.d\/helm-stable-debian.list\n\nsudo apt-get update\n\nsudo apt-get install helm<\/code><\/pre>\n<p>For Windows,<\/p>\n<pre><code class=\"language-bash\"># For Scoop\n\nscoop install helm\n\n#For Chocolatey\n\nchoco install kubernetes-helm<\/code><\/pre>\n<p>For other installation methods, check the <a href=\"https:\/\/helm.sh\/docs\/intro\/install?ref=devopscube.com\" rel=\"noreferrer\">official documentation<\/a>.<\/p>\n<h2 id=\"add-chart-repository\">Add Chart Repository<\/h2>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\">A Helm chart repository is a centralized hub where Helm charts are stored, organized, and shared for easy distribution and installation. You can think of it like a package registry, similar to npm for Node.js or PyPI for Python. Chart repository makes it simple to find and use pre-configured helm charts for applications.<\/div>\n<\/div>\n<p>Now that we have installed Helm, the next step is to add the chart repository.<\/p>\n<p>Now, add the chart repo for installing the stable charts.<\/p>\n<pre><code class=\"language-bash\">helm repo add argo https:\/\/argoproj.github.io\/argo-helm<\/code><\/pre>\n<p>Now, you can search the available chart using the search command. <\/p>\n<p>For example, if you are looking for Argo Helm charts, you can search for the available Argo chart using the following command.<\/p>\n<pre><code class=\"language-bash\">$ helm search repo argo\n\nNAME                        CHART VERSION  APP VERSION    DESCRIPTION                                       \nargo\/argo                   1.0.0          v2.12.5        A Helm chart...\nargo\/argo-cd                9.3.4          v3.2.5         A Helm chart...\nargo\/argo-ci                1.0.0          v1.0.0-alpha2  A Helm chart...\nargo\/argo-events            2.4.19         v1.9.9         A Helm chart...\nargo\/argo-lite              0.1.0                         Lighweight...\nargo\/argo-rollouts          2.40.5         v1.8.3         A Helm chart...\nargo\/argo-workflows         0.47.0         v3.7.7         A Helm chart...\nargo\/argocd-applicationset  1.12.1         v0.4.1         A Helm chart...\nargo\/argocd-apps            2.0.4                         A Helm chart...\nargo\/argocd-image-updater   1.0.4          v1.0.2         A Helm chart...\nargo\/argocd-notifications   1.8.1          v1.2.1         A Helm chart...<\/code><\/pre>\n<p>The charts shown above are the charts available in argo Helm repo.<\/p>\n<div class=\"kg-card kg-callout-card kg-callout-card-blue\">\n<div class=\"kg-callout-emoji\">\ud83d\udca1<\/div>\n<div class=\"kg-callout-text\">Organizations usually setup their own chart repoitory using tools like <a href=\"https:\/\/goharbor.io\/?ref=devopscube.com\" rel=\"noreferrer\">Harbor<\/a>, <a href=\"https:\/\/chartmuseum.com\/?ref=devopscube.com\" rel=\"noreferrer\">ChartMuseum<\/a> etc.. Also tools like <a href=\"https:\/\/devopscube.com\/setup-nexus-kubernetes\/\" rel=\"noreferrer\">JFrog<\/a>, Nexus also supports helm chart repositories.<\/p>\n<p>When it comes to cloud AWS ECR supports Helm charts as OCI artifacts. <\/p>\n<p>Google Artifact Registry support Helm charts<\/p>\n<p>Azure Container Registry also support Helm charts<\/p><\/div>\n<\/div>\n<p>Alternatively, you can search for stable community charts via <a href=\"https:\/\/artifacthub.io\/?ref=devopscube.com\" rel=\"noreferrer noopener\">artifacthub.com<\/a> where you can find many community-contributed Helm charts.<\/p>\n<figure class=\"kg-card kg-image-card\"><img decoding=\"async\" src=\"https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/2025\/03\/image-5-38.png\" class=\"kg-image\" alt=\"search helm charts in Artifacthub\" loading=\"lazy\" width=\"1110\" height=\"519\" srcset=\"https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w600\/2025\/03\/image-5-38.png 600w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/size\/w1000\/2025\/03\/image-5-38.png 1000w, https:\/\/storage.ghost.io\/c\/5f\/2f\/5f2f4d20-2abf-4534-8d40-7aa233aedd43\/content\/images\/2025\/03\/image-5-38.png 1110w\" sizes=\"auto, (min-width: 720px) 720px\"><\/figure>\n<h2 id=\"install-validate-helm-chart\">Install &amp; Validate Helm Chart<\/h2>\n<p>To validate the Helm setup, let&#8217;s set up <a href=\"https:\/\/devopscube.com\/setup-argo-cd-using-helm\" rel=\"noreferrer\">Argo CD<\/a> using the Helm chart available.<\/p>\n<p><strong>Step 1:<\/strong> First add the argo Helm repo. <\/p>\n<pre><code class=\"language-bash\">helm repo add argo https:\/\/argoproj.github.io\/argo-helm<\/code><\/pre>\n<p><strong>Step 2:<\/strong> Update the chart repo. <\/p>\n<pre><code class=\"language-bash\">helm repo update<\/code><\/pre>\n<p><strong>Step 3:<\/strong> Let&#8217;s install the Argo CD chart and test the setup. The Argo CD pods will be deployed in the default namespace.<\/p>\n<pre><code class=\"language-bash\">helm install argocd argo\/argo-cd   <\/code><\/pre>\n<p>Here <code>argocd<\/code> is the custom release name. You can give the name of your preference.<\/p>\n<p><strong>Step 4:<\/strong> Now, check the status of the Argo CD Helm deployment using the following command. It should show the status of the deployment.<\/p>\n<pre><code class=\"language-bash\">helm ls<\/code><\/pre>\n<p>Alternatively, you can use the kubectl command to check the Argo CD pods deployed in the default namespace.<\/p>\n<pre><code class=\"language-bash\">kubectl get po<\/code><\/pre>\n<p><strong>Step 4:<\/strong> Now, to remove the deployment after validation, all you have to do is uninstall the deployment using its release name.<\/p>\n<pre><code class=\"language-bash\">helm uninstall argocd<\/code><\/pre>\n<h2 id=\"upgrade-helm-executable\">Upgrade Helm Executable<\/h2>\n<p>If you are using an older version of Helm and want to upgrade it to the latest version, you can use the following steps, depending on your OS type.<\/p>\n<p>For MAC,<\/p>\n<pre><code class=\"language-bash\">brew update\nbrew upgrade helm<\/code><\/pre>\n<p>For Linux,<\/p>\n<p>The following script will fetch the latest version and upgrade it.<\/p>\n<pre><code class=\"language-bash\">curl https:\/\/raw.githubusercontent.com\/helm\/helm\/main\/scripts\/get-helm-4 | bash<\/code><\/pre>\n<p>For Windows,<\/p>\n<pre><code class=\"language-bash\">choco upgrade kubernetes-helm<\/code><\/pre>\n<p>After the upgrade, check the version using the following command.<\/p>\n<pre><code class=\"language-bash\">helm version<\/code><\/pre>\n<h2 id=\"conclusion\">Conclusion<\/h2>\n<p>In this post, we have seen how to install Helm, install the chart repo, and validate the installation using a sample Helm deployment.<\/p>\n<p>When you use Helm for project use cases, it is recommended that you create your own Helm charts with approved <a href=\"https:\/\/devopscube.com\/what-is-a-container-and-how-does-it-work\/\">container<\/a> images from the security team.<\/p>\n<p>If you use community Helm charts in project environments, ensure you replace the community <a href=\"https:\/\/devopscube.com\/build-docker-image\/\">Docker images<\/a> with custom-built images.<\/p>\n<p>Next, look at the comprehensive beginner&#8217;s guide on <a href=\"https:\/\/devopscube.com\/create-helm-chart\/\">how to create a Helm chart<\/a>. It covers the helm chart development and its best practices using step-by-step guides.<\/p>\n<hr>\n<p><strong>Ngu\u1ed3n:<\/strong> <a href=\"https:\/\/devopscube.com\/install-configure-helm-kubernetes\/\" target=\"_blank\" rel=\"noopener noreferrer\">How to set Git Upstream For a Respository and a Branch \u2014 DevOpsCube<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Source: https:\/\/devopscube.com\/install-configure-helm-kubernetes\/<\/p>\n","protected":false},"author":1,"featured_media":360,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-359","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops"],"_links":{"self":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts\/359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=359"}],"version-history":[{"count":0,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/posts\/359\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=\/wp\/v2\/media\/360"}],"wp:attachment":[{"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ngocha.biz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}