helm / chartmuseum

helm chart repository server
https://chartmuseum.com
Apache License 2.0
3.6k stars 400 forks source link

chartmuseum cannot server versions which differs in 'build metadata' x.y.z+<build-metadata>' #311

Open noam-toga opened 4 years ago

noam-toga commented 4 years ago

So i have 2 versions of my helmchart called dnsutils in my chartmuseum output of helm search repo -l

NAME                        CHART VERSION   APP VERSION DESCRIPTION                                       
chartmuseum/dnsutils            0.1.0                        1.3            A Helm chart for Kubernetes                     
chartmuseum/dnsutils            0.1.0+1.abcdeff       1.3           A Helm chart for Kubernetes

my simple requirements.yaml:

dependencies:
    - name: dnsutils
      version: "0.1.0+1.abcdeff"
      repository: "@chartmuseum"
      condition: dnsutils.enabled
      tags:
        - debug

now when i try to get the dependencies for that yaml with helm dep cmd - helm dependency update charts/workspaces/debug

i get the wrong version! i get dnsutils-0.1.0.tgz instead of dnsutils-0.1.0+1.abcdeff.tgz

output of the helm dep update directory -

noam@developer:~/work/omphalos$ ls charts/workspaces/debug/charts/
dnsutils-0.1.0.tgz

it's very easy to reproduce.

Let me know if i was understood this time And thanks again for the help Noam

Output of helm version: version.BuildInfo{Version:"v3.0.2", GitCommit:"19e47ee3283ae98139d98460de796c1be1e3975f", GitTreeState:"clean", GoVersion:"go1.13.5"}

chartmuseum version: ChartMuseum version 0.11.0 (build 969515a)

arats-io commented 4 years ago

Same problem I do have.

Is allowing us to push packages with all kinds of version structure. But I can only list and use only folowing version structure:

Please allow to use and list all pushed versions to repo.

sagiru commented 4 years ago

Hi there,

same problem here. I need to patch a upstream version of a helm chart and added a suffix to the version like x.y.z[-+]1.mybuild. After an upload to ChartMuseum is the (greatest) served version still the original x.y.z. Please sort the numbers e.g. like the classical "$ sort --version-sort" with the greatest as the top version (0).

$ echo -e "1.2.3+1.foo\n1.2.3" | sort --version-sort 1.2.3 1.2.3+1.foo

Regards Sascha

cfontes commented 4 years ago

This is extra bad because the delete feature is not removing the charts with non semantic versions from the index.

scbizu commented 4 years ago

@cfontes curl -X DELETE https://<museum_host>/api/charts/<name>/<non-semantic-version> just works for me. Maybe you should update your museum version to the latest release ?

jdolitsky commented 4 years ago

Hello, can people share example Chart.yaml files in these charts? It might be related to Helm 2 vs. Helm 3

jdolitsky commented 4 years ago

Specifically apiVersion

scbizu commented 4 years ago

@jdolitsky Hi , I try to reproduce this issue in my local museum , and find that the Chart with the build version (e.g.: 1.2.3+1.foo) is always list behind the primary version (e.g.: 1.2.3) even if the build version is uploaded after primary version . So, when we helm pull our chart , we will still get the old primary version (1.2.3 in this case), and we should specify the version through helm pull (e.g.: helm pull repo/mychart --version 1.2.3+1.foo) to get the build version chart if we want to get the latest Chart.

image

I am not familiar with Helm 2 and I use Helm 3 to reproduce it.