Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Helm chart on Kubeapps is not available #275

Open
maurizio-lattuada opened this issue Dec 7, 2020 · 18 comments
Open

Helm chart on Kubeapps is not available #275

maurizio-lattuada opened this issue Dec 7, 2020 · 18 comments

Comments

@maurizio-lattuada
Copy link

In README.md is suggested to download Chaoskube's Helm chart from Kubeapps. Unfortunately, the chart there cannot be found: the HTTP GET https://hub.kubeapps.com/api/chartsvc/v1/charts/stable/chaoskube returns a 404 there.

Would it be possible for you to check whether the Helm chart is still published there? The old repository https://github.com/helm/charts/tree/master/stable/chaoskube is now in archived state since end November.

Thank you

@Perfect-Web
Copy link

same here. also any helm 3 version ?

@javajon
Copy link

javajon commented Dec 21, 2020

This Katacoda scenario that teaches chaoskube as well as this scenario at O'Reilly learning relies on the Helm chart. These scenarios will be updated/fixed as soon as the new chart location is made available.

@ghouscht
Copy link
Contributor

ghouscht commented Jan 5, 2021

Unfortunately I've the same issue here. Probably submitting the chart to the kuebapps Hub would be a good idea. I can help out with this if there is something missing which is "required" by the best practices of kubeapps Hub.

@WyriHaximus
Copy link
Contributor

The stable chart repository maintainer by Helm has been deprecated so that might be it. Is there an official Helm chart for Chaoskube?

@ghouscht
Copy link
Contributor

ghouscht commented Jan 5, 2021

I don't think so, no. But why not create one now? I can file a PR with the chart if @linki is ok with merging it.

@WyriHaximus
Copy link
Contributor

That's the thing I was hinting at 👍 . Happy to help out

@ghouscht
Copy link
Contributor

FYI: The PR was merged, you can now use the helm chart with:

helm repo add chaoskube https://linki.github.io/chaoskube
helm repo update
helm template chaoskube/chaoskube

@maurizio-lattuada
Copy link
Author

Perfect, thank you all for this wonderful outcome 👍

@javajon
Copy link

javajon commented Mar 23, 2021

Tried this:

kubectl create namespace chaoskube

helm repo add chaoskube https://linki.github.io/chaoskube

helm repo update

helm install chaoskube chaoskube/chaoskube \
  --version 0.1.0 \
  --namespace chaoskube \
  --set 'tag=v0.21.0' \
  --set 'namespaces=!kube-system' \
  --set labels=app-purpose=chaos \
  --set interval=20s

Got this:

Events:
  Type     Reason     Age                    From               Message
  ----     ------     ----                   ----               -------
  Normal   Scheduled  4m28s                  default-scheduler  Successfully assigned chaoskube/chaoskube-87f854bc9-5dxsv to node01
  Normal   Pulling    2m54s (x4 over 4m26s)  kubelet, node01    Pulling image "quay.io/linki/chaoskube:0.21.0"
  Warning  Failed     2m52s (x4 over 4m25s)  kubelet, node01    Failed to pull image "quay.io/linki/chaoskube:0.21.0": rpc error: code = Unknown desc = Error response from daemon: manifest for quay.io/linki/chaoskube:0.21.0 not found: manifest unknown: manifest unknown
  Warning  Failed     2m52s (x4 over 4m25s)  kubelet, node01    Error: ErrImagePull
  Normal   BackOff    2m38s (x6 over 4m24s)  kubelet, node01    Back-off pulling image "quay.io/linki/chaoskube:0.21.0"
  Warning  Failed     2m27s (x7 over 4m24s)  kubelet, node01    Error: ImagePullBackOff

The Issue is image tag in repo is prefixed with "v" and this line strips the "v":

image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"

Also,

In value.yaml, the default for "tag" should be "latest", not "":

# Overrides the image tag whose default is the chart appVersion.
  tag: "latest"

Also, as part of the new chart for the merge, the install instructions in the README should have new Helm instructions.

Also, chart version number went from 3.3.2 backwards to 0.1.0. Suggest the new chart to be 4.0.0, bump major number since most of the chart values are different.

@linki
Copy link
Owner

linki commented Mar 23, 2021

@javajon Thanks for trying and reporting this.

@linki
Copy link
Owner

linki commented Mar 24, 2021

@javajon I added a PR that fixed it for me: #324

I don't think we should add tag: "latest" to the default values.yaml. This is only for when you want to override the default version defined in the Chart.yaml with something else. Let me know what you think about it.

@javajon
Copy link

javajon commented Mar 24, 2021 via email

@linki
Copy link
Owner

linki commented Mar 24, 2021

@javajon I see, thanks for the explanation.

When I look at the code it looks like given the "" tag value it will use the chart's appVersion (the released version) rather than latest. Isn't that what we want by default?

@javajon
Copy link

javajon commented Mar 24, 2021 via email

@javajon
Copy link

javajon commented Jun 21, 2021

As part of this Helm chart installation update, it should be registered on the chaos list at Artifacthub.io.

@javajon
Copy link

javajon commented Aug 26, 2021

Updated the chart install at Katacoda scenario for Chaoskube. The chart installs and ChaosKube appears healthy as seen in step 2. However, the Pod killing is no longer performing its duties as seen in step 4. Try it for yourself and please advise.

@javajon
Copy link

javajon commented Aug 26, 2021

@linki

When I look at the code it looks like given the "" tag value it will use the chart's appVersion (the released version) rather than latest. Isn't that what we

True, however, if the chart was tested for a specific version, that version should be pegged to the chart. Charts can easily break that implicitly reference latest or "" and the underlying chaosengine updates and no tests were performed on the chart. If the version of chaoskube changes the chart image.tag should remain the same, idempotent. If you retest the chart with a new chaoskube version, at that point the image.tag default value should be explicitly bumped. Leaving it as "" leaves you open to breakages.

If you notice in the Katacoda scenario both the chart and chaoskube versions are specific to protect the scenario from breaking with future changes. Idempotency protection.

@mkilchhofer
Copy link

mkilchhofer commented Aug 26, 2021

Using "" as image.tag default is perfectly fine. This is good practice in helm. Also this is how you start when you create a new chart based on helms skeleton:

$ helm create foobar
Creating foobar
$ cat foobar/templates/deployment.yaml | grep image:
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"

This can be easily fixed in Chart.yaml

diff --git a/chart/chaoskube/Chart.yaml b/chart/chaoskube/Chart.yaml
index 357a04c..ed96376 100644
--- a/chart/chaoskube/Chart.yaml
+++ b/chart/chaoskube/Chart.yaml
@@ -14,4 +14,4 @@ maintainers:
   - name: Thomas Gosteli
     url: https://github.com/ghouscht
 version: 0.1.0
-appVersion: 0.21.0
+appVersion: v0.21.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants