{"id":50079,"date":"2025-07-11T06:16:41","date_gmt":"2025-07-11T06:16:41","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=50079"},"modified":"2026-02-21T07:34:33","modified_gmt":"2026-02-21T07:34:33","slug":"openshift-how-to-add-helm-repository-in-openshift","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/openshift-how-to-add-helm-repository-in-openshift\/","title":{"rendered":"Openshift: How to add Helm Repository in Openshift"},"content":{"rendered":"\n<p>Adding a <strong>Helm repository<\/strong> in OpenShift is a common step to manage and deploy Helm charts in your OpenShift cluster. OpenShift supports Helm CLI out of the box, and also provides an Operator (<code>Helm Chart Repository CRD<\/code>) to centrally manage chart repositories visible in the OpenShift Web Console\u2019s <em>Developer Catalog<\/em>.<\/p>\n\n\n\n<p>Below, you\u2019ll find two ways:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A. Using the Helm CLI (User-level, CLI only)<\/strong><\/li>\n\n\n\n<li><strong>B. Adding a Helm Chart Repository for the OpenShift Web Console (Admin-level, visible in Catalog)<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A. Add a Helm Repository via CLI (User-level, CLI only)<\/strong><\/h2>\n\n\n\n<p>This lets you use any public Helm repo (e.g., Bitnami, Jetstack) in your terminal, similar to Kubernetes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1. Install the Helm CLI<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download: <a href=\"https:\/\/helm.sh\/docs\/intro\/install\/\" target=\"_blank\" rel=\"noopener\">https:\/\/helm.sh\/docs\/intro\/install\/<\/a><\/li>\n\n\n\n<li>On OpenShift nodes (optional), but most users install locally.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2. Add a Repository<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">helm repo add bitnami https:<span class=\"hljs-comment\">\/\/charts.bitnami.com\/bitnami<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<ul class=\"wp-block-list\">\n<li>Replace <code>bitnami<\/code> and URL with your desired repo.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3. Update Repositories<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">helm repo update<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4. List Charts<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">helm search repo bitnami<\/code><\/span><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5. Install a Chart into OpenShift<\/strong><\/h3>\n\n\n\n<p>Make sure you\u2019re logged into your OpenShift cluster:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">oc login ... <span class=\"hljs-comment\"># login if needed<\/span>\nhelm install my-mongodb bitnami\/mongodb --<span class=\"hljs-keyword\">namespace<\/span>=<span class=\"hljs-title\">my<\/span>-<span class=\"hljs-title\">namespace<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p><strong>That\u2019s it!<\/strong><br>You can now install, upgrade, or uninstall Helm charts using the CLI.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"480\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-17-1024x480.png\" alt=\"\" class=\"wp-image-50081\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-17-1024x480.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-17-300x141.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-17-768x360.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-17-1536x721.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-17.png 1916w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>B. Add Helm Chart Repository for the OpenShift Web Console Catalog (Admin-level)<\/strong><\/h2>\n\n\n\n<p>This is required if you want all users to browse and deploy charts from a repo using the OpenShift Web Console (Developer Catalog).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 1. Log in as a cluster-admin<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">oc login -u kubeadmin -p <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">password<\/span>&gt;<\/span> https:\/\/api.<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">cluster-domain<\/span>&gt;<\/span>:6443<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 2. Create a Project (Optional)<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">oc <span class=\"hljs-keyword\">new<\/span>-project devopsschool-dev<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 3. Apply the ProjectHelmChartRepository YAML<\/strong><\/h3>\n\n\n\n<p>Create a file called <code>bitnami-helm-repo.yaml<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">apiVersion: helm.openshift.io\/v1beta1\n<span class=\"hljs-attr\">kind<\/span>: ProjectHelmChartRepository\n<span class=\"hljs-attr\">metadata<\/span>:\n  name: bitnami\n  <span class=\"hljs-attr\">namespace<\/span>: devopsschool-dev\n<span class=\"hljs-attr\">spec<\/span>:\n  name: bitnami\n  <span class=\"hljs-attr\">description<\/span>: Bitnami Helm chart repository\n  <span class=\"hljs-attr\">connectionConfig<\/span>:\n    url: https:<span class=\"hljs-comment\">\/\/charts.bitnami.com\/bitnami<\/span>\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>You can use any name\/namespace. The <code>url:<\/code> should be your chart repo URL.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 4. Apply the YAML<\/strong><\/h3>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">oc<\/span> <span class=\"hljs-selector-tag\">apply<\/span> <span class=\"hljs-selector-tag\">-f<\/span> <span class=\"hljs-selector-tag\">bitnami-helm-repo<\/span><span class=\"hljs-selector-class\">.yaml<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><strong>Step 5. Check in the Web Console<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Go to <strong>Developer<\/strong> \u2192 <strong>+Add<\/strong> \u2192 <strong>Helm Chart<\/strong><\/li>\n\n\n\n<li>You should see the <em>Bitnami<\/em> charts available for install!<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Troubleshooting &amp; Tips<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>You need the <strong>Helm Operator<\/strong> installed by default in OpenShift 4.x+.<\/li>\n\n\n\n<li>To add a repo <strong>cluster-wide<\/strong> (all namespaces), use a <code>HelmChartRepository<\/code> resource, not <code>ProjectHelmChartRepository<\/code>.<\/li>\n\n\n\n<li>For <strong>private repositories<\/strong>, add authentication fields under <code>connectionConfig<\/code>.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Summary Table<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Method<\/th><th>Scope<\/th><th>Use Case<\/th><\/tr><\/thead><tbody><tr><td>Helm CLI<\/td><td>Per-user (CLI only)<\/td><td>Quick install, dev\/test, CI\/CD<\/td><\/tr><tr><td>ProjectHelmChartRepository<\/td><td>Namespace (Web UI &amp; CLI)<\/td><td>Org-wide, dev teams, UI Catalog<\/td><\/tr><tr><td>HelmChartRepository<\/td><td>Cluster-wide<\/td><td>All projects, company-wide<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\"><strong>References<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.openshift.com\/container-platform\/latest\/cicd\/helm\/helm-chart-repositories.html\" target=\"_blank\" rel=\"noopener\">OpenShift Docs: Using Helm Charts<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/helm.sh\/docs\/\" target=\"_blank\" rel=\"noopener\">Helm Docs<\/a><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"440\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-16-1024x440.png\" alt=\"\" class=\"wp-image-50080\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-16-1024x440.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-16-300x129.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-16-768x330.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-16-1536x660.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/07\/image-16.png 1938w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Adding a Helm repository in OpenShift is a common step to manage and deploy Helm charts in your OpenShift cluster. OpenShift supports Helm CLI out of the box, and also&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[5153],"tags":[],"class_list":["post-50079","post","type-post","status-publish","format-standard","hentry","category-openshift"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/50079","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=50079"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/50079\/revisions"}],"predecessor-version":[{"id":59096,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/50079\/revisions\/59096"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=50079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=50079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=50079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}