helm-controller
helm-controller copied to clipboard
Chart deployment issues
Hello,
How do I install charts using this procedure. Unfortunately for me all the charts deployment are failing with similar error related to DNS resolution :(
here is my chart file
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: nginx
namespace : test
spec:
chart: nginx
repo: https://helm.nginx.com/stable
targetNamespace: test
here are the full error logs
k logs helm-install-nginx-6c94r -n test
CHART=$(sed -e "s/%{KUBERNETES_API}%/${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}/g" <<< "${CHART}")
set +v -x
+ cp /var/run/secrets/kubernetes.io/serviceaccount/ca.crt /usr/local/share/ca-certificates/
+ update-ca-certificates
WARNING: ca-certificates.crt does not contain exactly one certificate or CRL: skipping
+ '[' '' '!=' true ']'
+ export HELM_HOST=127.0.0.1:44134
+ HELM_HOST=127.0.0.1:44134
+ + helm_v2 init --skip-refresh --client-onlytiller
--listen=127.0.0.1:44134 --storage=secret
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Not installing Tiller due to 'client-only' flag having been set
++ helm_v2 ls --all '^nginx$' --output json
++ jq -r '.Releases | length'
[main] 2020/12/14 20:28:06 Starting Tiller v2.16.10 (tls=false)
[main] 2020/12/14 20:28:06 GRPC listening on 127.0.0.1:44134
[main] 2020/12/14 20:28:06 Probes listening on :44135
[main] 2020/12/14 20:28:06 Storage driver is Secret
[main] 2020/12/14 20:28:06 Max history per release is 0
[storage] 2020/12/14 20:28:06 listing all releases with filter
+ EXIST=
+ '[' '' == 1 ']'
+ '[' '' == v2 ']'
+ shopt -s nullglob
+ helm_content_decode
+ set -e
+ ENC_CHART_PATH=/chart/nginx.tgz.base64
+ CHART_PATH=/nginx.tgz
+ '[' '!' -f /chart/nginx.tgz.base64 ']'
+ return
+ '[' install '!=' delete ']'
+ helm_repo_init
+ grep -q -e 'https\?://'
+ '[' helm_v3 == helm_v3 ']'
+ [[ nginx-ingress == stable/* ]]
+ '[' -n https://helm.nginx.com/stable ']'
+ helm_v3 repo add nginx https://helm.nginx.com/stable
**Error: looks like "https://helm.nginx.com/stable" is not a valid chart repository or cannot be reached: Get "https://helm.nginx.com/stable/index.yaml": dial tcp: lookup helm.nginx.com on 10.43.0.10:53: server misbehaving**
Also I noticed that the stable repo being used is still the old one and should be changed to https://charts.helm.sh/stable
I have the same Problem...
CHART=$(sed -e "s/%{KUBERNETES_API}%/${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT}/g" <<< "${CHART}")
set +v -x
+ cp /var/run/secrets/kubernetes.io/serviceaccount/ca.crt /usr/local/share/ca-certificates/
+ update-ca-certificates
WARNING: ca-certificates.crt does not contain exactly one certificate or CRL: skipping
+ export HELM_HOST=127.0.0.1:44134
+ HELM_HOST=127.0.0.1:44134
+ tiller --listen=127.0.0.1:44134 --storage=secret
+ helm_v2 init --skip-refresh --client-only
Creating /root/.helm
Creating /root/.helm/repository
Creating /root/.helm/repository/cache
Creating /root/.helm/repository/local
Creating /root/.helm/plugins
Creating /root/.helm/starters
Creating /root/.helm/cache/archive
Creating /root/.helm/repository/repositories.yaml
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com
Adding local repo with URL: http://127.0.0.1:8879/charts
$HELM_HOME has been configured at /root/.helm.
Not installing Tiller due to 'client-only' flag having been set
++ jq -r '.Releases | length'
++ helm_v2 ls --all '^goharbor$' --output json
[main] 2021/03/08 21:46:51 Starting Tiller v2.16.8 (tls=false)
[main] 2021/03/08 21:46:51 GRPC listening on 127.0.0.1:44134
[main] 2021/03/08 21:46:51 Probes listening on :44135
[main] 2021/03/08 21:46:51 Storage driver is Secret
[main] 2021/03/08 21:46:51 Max history per release is 0
[storage] 2021/03/08 21:46:51 listing all releases with filter
+ EXIST=
+ '[' '' == 1 ']'
+ '[' '' == v2 ']'
+ shopt -s nullglob
+ helm_content_decode
+ set -e
+ ENC_CHART_PATH=/chart/goharbor.tgz.base64
+ CHART_PATH=/goharbor.tgz
+ '[' '!' -f /chart/goharbor.tgz.base64 ']'
+ return
+ '[' install '!=' delete ']'
+ helm_repo_init
+ grep -q -e 'https\?://'
+ '[' helm_v3 == helm_v3 ']'
+ [[ harbor == stable/* ]]
+ '[' -n https://helm.goharbor.io ']'
+ helm_v3 repo add goharbor https://helm.goharbor.io
Error: looks like "https://helm.goharbor.io" is not a valid chart repository or cannot be reached: Get https://helm.goharbor.io/index.yaml: x509: certificate is valid for localddns.spdns.eu, not helm.goharbor.io
Same problem here with the official longhorn helm repository.
apiVersion: helm.cattle.io/v1
kind: HelmChart
metadata:
name: longhorn
namespace: kube-system
spec:
chart: longhorn/longhorn
targetNamespace: longhorn-system
repo: https://charts.longhorn.io
valuesContent: |-
defaultSettings:
createDefaultDiskLabeledNodes: true
+ helm_v3 repo add longhorn https://charts.longhorn.io
Error: looks like "https://charts.longhorn.io" is not a valid chart repository or cannot be reached: Get "https://charts.longhorn.io/index.yaml": dial tcp: lookup charts.longhorn.io on 10.43.0.10:53: server misbehaving
10.43.0.10:53 is your cluster DNS service record IE CoreDNS. This error means that DNS is not working inside your cluster. You should review the CoreDNS pods logs.
Same problem here.
+ helm_v3 repo add stable https://charts.helm.sh/stable/ Error: looks like "https://charts.helm.sh/stable/" is not a valid chart repository or cannot be reached: Get "https://charts.helm.sh/stable/index.yaml": dial tcp: lookup charts.helm.sh on 172.30.0.10:53: server misbehaving
Same answer as above, check on your coredns pod logs.
I had resolved this problem by using nodelocaldns in my cluster. Apparently some DNS queries were timing out but by having DNS cache per node made those queries works perfectly well.