What do you need to know about Helm 2, Helm 3, and ACR?
In the last few months, I started seeing more and more customers using Azure Container Registry (or ACR) for storing their Helm charts. However, many of them are confused about how to properly push and use the charts stored in ACR. So, in this post, I will document a few things that need the most clarifications. Let’s start with some definitions!
Helm 2 and Helm 3 – what are those?
Before we even start!
Helm 2 is NOT supported and you should not use it! Period! If you need more details just read Helm’s blog post Helm 2 and the Charts Project Are Now Unsupported from Fri, Nov 13, 2020.
A nice date to choose for that announcement š
OK, really – what are Helm 2 and Helm 3? When somebody says Helm 2 or Helm 3, they most often mean the version of the Helm CLI (i.e., Command Line Interface). The easiest way to check what version of the Helm CLI you have is to type:
$ helm version
in your Terminal. If the version is v2.x.x
, then you have Helm (CLI) 2; if the version is v3.x.x
then, you have Helm (CLI) 3. But, it is not that simple! You should also consider the API version. The API version is the version that you specify at the top of your chart (i.e. Chart.yaml
) – you can read more about it in Helm Charts documentation. Here is a table that can come in handy for you:
wdt_ID | apiVersion | Helm 2 CLI Support | Helm 3 CLI Support |
---|---|---|---|
1 | v1 | Yes | Yes |
2 | v2 | No | Yes |
What this table tells you is that Helm 2 CLI supports apiVersion
V1, while Helm 3 CLI supports apiVersion
V1 and V2. You should check the Helm Charts documentation linked above if you need more details about the differences, but the important thing to remember here is that Helm 3 CLI supports old charts, and (once again) there is no reason for you to use Helm 2.
We’ve cleared (I hope) the confusion around Helm 2 and Helm 3. Let’s see how ACR handles the Helm charts. For each one of those experiences, I will walk you step-by-step.
ACR and Helm 2
Azure Container Registry allows you to store Helm charts using the Helm 2 way (What? I will explain in a bit). However:
Helm 2 is NOT supported and you should not use it!
Now that you have been warned (twice! or was it three times?) let’s see how ACR handles Helm 2 charts. To avoid any ambiguity, I will use Helm CLI v2.17.0
for this exercise. At the time of this writing, it is the last published version of Helm 2.
$ helm version Client: &version.Version{SemVer:"v2.17.0", GitCommit:"a690bad98af45b015bd3da1a41f6218b1a451dbe", GitTreeState:"clean"}
Initializing Helm and the Repository List
If you have a brand new installation of the Helm 2 CLI, you should initialize Helm and add the ACR to your repository list. You start with:
$ helm init $ helm repo list NAME URL stable https://charts.helm.sh/stable local http://127.0.0.1:8879/charts
to initialize Helm and see the list of available repositories. Then you can add your ACR to the list by typing:
$ helm repo add --username <acr_username> --password <acr_password> <repo_name> https://<acr_login_server>/helm/v1/repo
For me, this looked like this:
$ helm repo add --username <myacr_username> --password <myacr_password> acrrepo https://tsmacrtestwus2acrhelm.azurecr.io/helm/v1/repo
Here is something very important: you must use the /helm/v1/repo
path! If you do not specify the path you will see either 404: Not found
error (for example, if you use the root URL without a path) or 403: Forbidden
error (if you decide that you want to rename the repo
part to something else).
I also need to make a side note here because the authentication can be a bit tricky. The following section applies to both Helm 2 and Helm 3.
Signing In To ACR Using the Helm (any version) CLI
Before you push and pull charts from ACR, you need to sign in. There are few different options that you can use to sign in to ACR using the CLI:
- Using ACR Admin user (not recommended)
If you have ACR Admin user enabled, you can use the Admin user username and password to sign in to ACR by simply specifying the--username
and--password
parameters for the Helm command. - Using a Service Principal (SP)
If you need to push and pull charts using automation, you have most probably already set up a service principal for that. You can authenticate using the SP credentials by passing the app ID in theĀ--username
and the client secret in the--password
parameters for the Helm command. Make sure you assign the appropriate role to the service principal to allow access to your registry. - Using your own (user) credentials
This one is the tricky one, and it is described in the ACR docs in az acr login with –expose-token section of the Authentication overview article. For this one, you must use the Azure CLI to obtain the token. Here are the steps:- Use the Azure CLI to sign in to Azure using your own credentials:
$ az login
This will pop up a browser window or give you an URL with a special code to use.
- Next, sign in to ACR using the Azure CLI and add the
--expose-token
parameter:$ az acr login --name <acr_name_or_login_server> --expose-token
This will sign you into ACR and will print an access token that you can use to sign in with other tools.
- Last, you can sign in using the Helm CLI by passing a GUID-like string with zeros only (exactly this string
00000000-0000-0000-0000-000000000000
) in theĀ--username
parameter and the access token in the--password
parameter. Here is how the command to add the Helm repository will look like:$ helm repo add --username "00000000-0000-0000-0000-000000000000" --password "eyJhbGciOiJSUzI1NiIs[...]24V7wA" <repo_name> https://<acr_login_server>/helm/v1/repo
- Use the Azure CLI to sign in to Azure using your own credentials:
Creating and Packaging Charts with Helm 2 CLI
Helm 2 doesn’t have out-of-the-box experience for pushing charts to a remote chart registry. You may wrongly assume that the helm-push
plugin is the one that does that, but you will be wrong. This plugin will only allow you to push charts to Chartmuseum (although I can use it to try to push to any repo but will fail – a topic for another story). Helm’s guidance on how chart repositories should work is described in the documentation (… and this is the Helm 2 way that I mentioned above):
- According to Chart Repositories article in Helm documentation, the repository is a simple web server that serves the
index.yaml
file that points to the chart TAR archives. The TAR archives can be served by the same web server or from other locations like Azure Storage. - In Store charts in your chart repository they describe the process to generate the
index.yaml
file and how to upload the necessary artifacts to static storage to serve them.
Disclaimer: the term Helm 2 way is my own term based on my interpretation of how things work. It allows me to refer to the two different approaches charts are saved. It is not an industry term not something that Helm refers to or uses.
I have created a simple chart called helm-test-chart-v2
on my local machine to test the push. Here is the output from the commands:
$ $Ā helmĀ createĀ helm-test-chart-v2 Creating helm-test-chart-v2 $ ls -al ./helm-test-chart-v2/ total 28 drwxr-xr-x 4 azurevmuser azurevmuser 4096 Aug 16 16:44 . drwxr-xr-x 6 azurevmuser azurevmuser 4096 Aug 17 16:29 .. -rw-r--r-- 1 azurevmuser azurevmuser 342 Aug 16 16:44 .helmignore -rw-r--r-- 1 azurevmuser azurevmuser 114 Aug 16 16:44 Chart.yaml drwxr-xr-x 2 azurevmuser azurevmuser 4096 Aug 16 16:44 charts drwxr-xr-x 3 azurevmuser azurevmuser 4096 Aug 16 16:44 templates -rw-r--r-- 1 azurevmuser azurevmuser 1519 Aug 16 16:44 values.yaml $ helm package ./helm-test-chart-v2/ Successfully packaged chart and saved it to: /home/azurevmuser/helm-test-chart-v2-0.1.0.tgz $ ls -al total 48 drwxr-xr-x 6 azurevmuser azurevmuser 4096 Aug 17 16:31 . drwxr-xr-x 3 root root 4096 Aug 14 14:12 .. -rw------- 1 azurevmuser azurevmuser 780 Aug 15 22:48 .bash_history -rw-r--r-- 1 azurevmuser azurevmuser 220 Feb 25 2020 .bash_logout -rw-r--r-- 1 azurevmuser azurevmuser 3771 Feb 25 2020 .bashrc drwx------ 2 azurevmuser azurevmuser 4096 Aug 14 14:15 .cache drwxr-xr-x 6 azurevmuser azurevmuser 4096 Aug 15 21:46 .helm -rw-r--r-- 1 azurevmuser azurevmuser 807 Feb 25 2020 .profile drwx------ 2 azurevmuser azurevmuser 4096 Aug 14 14:12 .ssh -rw-r--r-- 1 azurevmuser azurevmuser 0 Aug 14 14:18 .sudo_as_admin_successful -rw------- 1 azurevmuser azurevmuser 1559 Aug 14 14:26 .viminfo drwxr-xr-x 4 azurevmuser azurevmuser 4096 Aug 16 16:44 helm-test-chart-v2 -rw-rw-r-- 1 azurevmuser azurevmuser 3269 Aug 17 16:31 helm-test-chart-v2-0.1.0.tgz
Because Helm 2 doesn’t have a push chart functionality, the implementation is left up to the vendors. ACR has provided proprietary implementation (already deprecated, which is another reason to not use Helm 2) of the push chart functionality that is built into the ACR CLI.
Pushing and Pulling Charts from ACR Using Azure CLI (Helm 2)
Let’s take a look at how you can push Helm 2 charts to ACR using the ACR CLI. First, you need to sign in to Azure, and then to your ACR. Yes, this is correct; you need to use two different commands to sign into the ACR. Here is how this looks like for my ACR registry:
$ az login To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AABBCCDDE to authenticate. [ { "cloudName": "AzureCloud", "homeTenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "isDefault": true, "managedByTenants": [], "name": "ToddySM Sandbox", "state": "Enabled", "tenantId": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "user": { "name": "toddysm_XXXXXXXX@outlook.com", "type": "user" } } ] $ az acr login --name tsmacrtestwus2acrhelm.azurecr.io The login server endpoint suffix '.azurecr.io' is automatically omitted. You may want to use 'az acr login -n tsmacrtestwus2acrhelm --expose-token' to get an access token, which does not require Docker to be installed. An error occurred: DOCKER_COMMAND_ERROR Please verify if Docker client is installed and running.
Well, I do not have Docker running, but this is OK – you don’t need Docker installed for pushing the Helm chart. Though, it may be confusing because it leaves the impression that you may not be signed in to the ACR registry.
We will push the chart that we packaged already. Pushing it is done with the (deprecated) built-in command in ACR CLI. Here is the output:
$ az acr helm push --name tsmacrtestwus2acrhelm.azurecr.io helm-test-chart-v2-0.1.0.tgz This command is implicitly deprecated because command group 'acr helm' is deprecated and will be removed in a future release. Use 'helm v3' instead. The login server endpoint suffix '.azurecr.io' is automatically omitted. { "saved": true }
This seems to be successful, and I have a Helm chart pushed to ACR using the Helm 2 way (i.e. using the proprietary and deprecated ACR CLI implementation). The problem here is that it is hard to verify that the chart is pushed to the ACR registry. If you go to the portal, you will not see the repository that contains the chart. Here is a screenshot of my registry view in the Azure portal after I pushed the chart:
As you can see, the Helm 2 chart repository doesn’t appear in the list of repositories in the Azure portal, and you will not be able to browse the charts in that repository using the Azure portal. However, if you use the Helm command to search for the chart, the result will include the ACR repository. Here is the output from the command in my environment:
$ helm search helm-test-chart-v2 NAME CHART VERSION APP VERSION DESCRIPTION acrrepo/helm-test-chart-v2 0.1.0 1.0 A Helm chart for Kubernetes local/helm-test-chart-v2 0.1.0 1.0 A Helm chart for Kubernetes
Summary of the ACR and Helm 2 Experience
To summarize the ACR and Helm 2 experience, here are the main takeaways:
- First, you should not use Helm 2 CLI and the proprietary ACR CLI implementation for working with Helm charts!
- There is no
push
functionality for charts in the Helm 2 client and each vendor is implementing their own CLI for pushing charts to the remote repositories. - When you add ACR repository using the Helm 2 CLI you should use the following URL format
https://<acr_login_server>/helm/v1/repo
- If you push a chart to ACR using the ACR CLI implementation you will not see the chart in Azure Portal. The only way to verify that the chart is pushed to the ACR repository is to use the
helm search
command.
ACR and Helm 3
Once again, to avoid any ambiguity, I will use Helm CLI v3.6.2
for this exercise. Here is the complete version string:
PS C:> helm version version.BuildInfo{Version:"v3.6.2", GitCommit:"ee407bdf364942bcb8e8c665f82e15aa28009b71", GitTreeState:"clean", GoVersion:"go1.16.5"}
Yes, I run this one in PowerShell terminal š And, of course, not in the root folder š You can convert the commands to the corresponding Linux commands and prompts.
Let’s start with the basic thing!
Creating and Packaging Charts with Helm 3 CLI
There is absolutely no difference between the Helm 2 and Helm 3 experience for creating and packaging a chart. Here is the output:
PSĀ C:> helm create helm-test-chart-v3 Creating helm-test-chart-v3 PS C:> lsĀ .\helm-test-chart-v3\ Directory:Ā C:\Users\memladen\Documents\Development\Local\helm-test-chart-v3 Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 8/17/2021 9:42 PM charts d---- 8/17/2021 9:42 PM templates -a--- 8/17/2021 9:42 PM 349 .helmignore -a--- 8/17/2021 9:42 PM 1154 Chart.yaml -a--- 8/17/2021 9:42 PM 1885 values.yaml PSĀ C:>Ā helm package .\helm-test-chart-v3\ Successfully packaged chart and saved it to: C:\Users\memladen\Documents\Development\Local\helm-test-chart-v3-0.1.0.tgz PS C:> lsĀ helm-test-* Directory: C:\Users\memladen\Documents\Development\Local Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 8/17/2021 9:42 PM helm-test-chart-v3 -a--- 8/17/2021 9:51 PM 3766 helm-test-chart-v3-0.1.0.tgz
From here on, though, things can get confusing! The reason is that you have two separate options to work with charts using Helm 3.
Using Helm 3 to Push and Pull Charts the Helm 2 Way
You can use Helm 3 to push the charts the same way you do that with Helm 2. First, you add the repo:
PS C:> helm repo add --username <myacr_username>Ā --passwordĀ <myacr_password> acrrepo https://tsmacrtestwus2acrhelm.azurecr.io/helm/v1/repo "acrrepo" has been added to your repositories PS C:> helm repo list NAME URL microsoft https://microsoft.github.io/charts/repo acrrepo https://tsmacrtestwus2acrhelm.azurecr.io/helm/v1/repo
Then, you can update the repositories and search for a chart:
PS C:> helm repo update Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "microsoft" chart repository ...Successfully got an update from the "acrrepo" chart repository Update Complete. āHappy Helming!ā PS C:> helm search repo helm-test-chart NAME CHART VERSION APP VERSION DESCRIPTION acrrepo/helm-test-chart-v2 0.1.0 1.0 A Helm chart for Kubernetes
Ha, look at that! I can see the chart that I pushed using the ACR CLI in the ACR and Helm 2 section above – notice the chart name and the version. Also, notice that the Helm 3 search
command has a bit different syntax – it wants you to clarify what you want to search (repo
in our case).
I can use the ACR CLI to push the new chart that I just created using the Helm 3 CLI (after signing in to Azure):
PS C:> az acr helm push --name tsmacrtestwus2acrhelm.azurecr.io .\helm-test-chart-v3-0.1.0.tgz This command is implicitly deprecated because command group 'acr helm' is deprecated and will be removed in a future release. Use 'helm v3' instead. The login server endpoint suffix '.azurecr.io' is automatically omitted. { "saved": true }
By doing this, I have pushed the V3 chart to ACR and can pull it from there but, remember, this is the Helm 2 Way and the following are still true:
- You will not see the chart in Azure Portal.
- The only way to verify that the chart is pushed to the ACR repository is to use the
helm search
command.
Here is the result of the search
command after updating the repositories:
PS C:> helm repo update Hang tight while we grab the latest from your chart repositories... ...Successfully got an update from the "microsoft" chart repository ...Successfully got an update from the "acrrepo" chart repository Update Complete. āHappy Helming!ā PS C:> helm search repo helm-test-chart NAME CHART VERSION APP VERSION DESCRIPTION acrrepo/helm-test-chart-v2 0.1.0 1.0 A Helm chart for Kubernetes acrrepo/helm-test-chart-v3 0.1.0 1.16.0 A Helm chart for Kubernetes
You can see both charts, the one created with Helm 2 and the one created with Helm 3, available. This is understandable though because I pushed both charts the same way – by using the az acr helm
command. Remember, though – both charts are stored in ACR using the Helm 2 way.
Using Helm 3 to Push and Pull Charts the OCI Way
Before proceeding, I changed the version
property in the Chart.yaml
to 0.2.0
to be able to differentiate between the charts I pushed. This is the same chart that I created in the previous section Creating and Packaging Charts with Helm 3 CLI.
You may have noticed that Helm 3 has a new chart
command. This command allows you to (from the help text) “push, pull, tag, list, or remove Helm charts”. The subcommands under the chart
command are experimental and you need to set the HELM_EXPERIMENTAL_OCI
environment variable to be able to use them. Once you do that, you can save the chart. You can save the chart to the local registry cache with or without a registry FQDN (Fully Qualified Domain Name). Here are the commands:
PS C:> $env:HELM_EXPERIMENTAL_OCI=1 PS C:> helm chart save .\helm-test-chart-v3\ helm-test-chart-v3:0.2.0 ref:Ā Ā Ā Ā Ā helm-test-chart-v3:0.2.0 digest:Ā Ā b6954fb0a696e1eb7de8ad95c59132157ebc061396230394523fed260293fb19 size:Ā Ā Ā Ā 3.7 KiB name:Ā Ā Ā Ā helm-test-chart-v3 version: 0.2.0 0.2.0: saved PSĀ C:>Ā helm chart save .\helm-test-chart-v3\ tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0 ref:Ā Ā Ā Ā Ā tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0 digest:Ā Ā ff5e9aea6d63d7be4bb53eb8fffacf12550a4bb687213a2edb07a21f6938d16e size:Ā Ā Ā Ā 3.7 KiB name:Ā Ā Ā Ā helm-test-chart-v3 version: 0.2.0 0.2.0: saved
If you list the charts using the new chart
command, you will see the following:
PS C:> helm chart list REF NAME VERSION DIGEST SIZE CREATED helm-test-chart-v3:0.2.0 helm-test-chart-v3 0.2.0 b6954fb 3.7 KiB About a minute tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0 helm-test-chart-v3 0.2.0 ff5e9ae 3.7 KiB About a minute
Few things to note here:
- Both charts are saved in the local registry cache. Nothing is pushed yet to a remote registry.
- You see only charts that are saved the OCI way. The charts saved the Helm 2 way are not listed using the
helm chart list
command. - The
REF
(or reference) for a chart can be truncated and you may not be able to see the full reference.
Let’s do one more thing! Let’s save the same chart with FQDN for the ACR as above but under a different repository. Here are the commands to save and list the charts:
PS C:> helm chart save .\helm-test-chart-v3\ tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart-v3:0.2.0 ref: tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart-v3:0.2.0 digest: daf106a05ad2fe075851a3ab80f037020565c75c5be06936179b882af1858e6a size: 3.7 KiB name: helm-test-chart-v3 version: 0.2.0 0.2.0: saved PS C:> helm chart list REF NAME VERSION DIGEST SIZE CREATED helm-test-chart-v3:0.2.0 helm-test-chart-v3 0.2.0 b6954fb 3.7 KiB 11 minutes tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0 helm-test-chart-v3 0.2.0 ff5e9ae 3.7 KiB 11 minutes tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart... helm-test-chart-v3 0.2.0 daf106a 3.7 KiB About a minute
After doing this, we have three charts in the local registry:
helm-test-chart-v3:0.2.0
that is available only locally.tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0
that can be pushed to the remote ACR registrytsmacrtestwus2acrhelm.azurecr.io
and saved in theĀcharts
repository.- and
tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart-v3:0.2.0
that can be pushed to the remote ACR registrytsmacrtestwus2acrhelm.azurecr.io
and saved in theĀmy-helm-charts
repository.
Before we can push the charts to the ACR registry, we need to sign in using the following command:
PS C:> helm registry login tsmacrtestwus2acrhelm.azurecr.io --username <myacr_username> --password <myacr_password>
You can use any of the sign-in methods described in Signing in to ACR Using the Helm CLI section. And make sure you use your own ACR registry login server.
If we push the two charts that have the ACR FQDN, we will see them appear in the Azure portal UI. Here are the commands:
PS C:> helm chart push tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0 The push refers to repository [tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3] ref: tsmacrtestwus2acrhelm.azurecr.io/charts/helm-test-chart-v3:0.2.0 digest: daf106a05ad2fe075851a3ab80f037020565c75c5be06936179b882af1858e6a size: 3.7 KiB name: helm-test-chart-v3 version: 0.2.0 0.2.0: pushed to remote (1 layer, 3.7 KiB total) PS C:> helm chart push tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart-v3:0.2.0 The push refers to repository [tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart-v3] ref: tsmacrtestwus2acrhelm.azurecr.io/my-helm-charts/helm-test-chart-v3:0.2.0 digest: daf106a05ad2fe075851a3ab80f037020565c75c5be06936179b882af1858e6a size: 3.7 KiB name: helm-test-chart-v3 version: 0.2.0 0.2.0: pushed to remote (1 layer, 3.7 KiB total)
And here is the result:
An important thing to note here is that:
- Helm charts saved to ACR using the OCI way will appear in the Azure portal.
The approach here is a bit different than the Helm 2 way. You don’t need to package the chart into a TAR – saving the chart to the local registry is enough.
We need to do one last thing and we are ready to summarize the experience. Let’s use the helm search
command to find our charts (of course using Helm 3). Here is the result of the search:
PSĀ C:>Ā helmĀ searchĀ repoĀ helm-test-chartĀ NAMEĀ CHART VERSION APP VERSION DESCRIPTION acrrepo/helm-test-chart-v2Ā 0.1.0 1.0 A Helm chart for Kubernetes acrrepo/helm-test-chart-v3Ā 0.1.0 1.16.0 A Helm chart for Kubernetes
It yields the same result like the one we saw in Using Helm 3 to Push and Pull Charts the Helm 2 Way. The reason is that the helm search
command doesn’t work for charts stored the OCI way. This is one limitation that the Helm team is working on fixing and is documented in Support for OCI registries in helm search #9983 issue on GitHub.
Summary of the ACR and Helm 3 Experience
To summarize the ACR and Helm 3 experience, here are the main takeaways:
- First, you can use the Helm 3 CLI in conjunction with the
az acr helm
command to push and pull charts the Helm 2 way. Those charts will not appear in the Azure portal.
- You can also use the Helm 3 CLI to (natively) push charts to ACR the OCI way. Those charts will appear in the Azure portal.
- OCI features are experimental in the Helm 3 client and certain functionalities like
helm search
andhelm repo
do not work for charts saved and pushed the OCI way.
Conclusion
To wrap it up, when working with Helm charts and ACR (as well as other OCI compliant registries), you need to be careful which commands you use. As a general rule, always use the Helm 3 CLI and make a conscious decision whether you want to store the charts as OCI artifacts (the OCI way) or using the legacy Helm approach (the Helm 2 way). This should be a transition period and hopefully, at some point in the future, Helm will improve the support for OCI compliant charts and support the same scenarios that are currently enabled for legacy chart repositories.
Here is a summary table that gives a quick overview of what we described in this post.
wdt_ID | Functionality | Helm 2 CLI (legacy) | Helm 3 (legacy) | Helm 3 (OCI) |
---|---|---|---|---|
1 | helm add repo | Yes | Yes | No |
2 | helm search | Yes | Yes | No |
3 | helm chart push | No | No | Yes |
4 | helm chart list | No | No | Yes |
5 | az acr helm push | Yes | Yes | No |
6 | Chart appears in Azure portal | No | No | Yes |
7 | Example chart | helm-test-chart-v2 | helm-test-chart-v3 | helm-test-chart-v3 |
8 | Example chart version | 0.1.0 | 0.1.0 | 0.2.0 |