我正在使用Gitlab Auto DevOps CI管道,我想使用helm删除部署。
我尝试连接到像这个helm init --client-only --tiller-namespace=gitlab-managed-apps
这样的分蘖
$HELM_HOME has been configured at /Users/marvin/.helm.
Not installing Tiller due to 'client-only' flag having been set
Happy Helming!
helm list --namespace=gitlab-managed-apps
returns Error: could not find tiller
我有同样的问题。我在这里找到了列出发布的解决方案:https://forum.gitlab.com/t/orphaned-apps-in-gitlab-managed-apps-namespace/22717/9
export TILLER_NAMESPACE="gitlab-managed-apps"
kubectl get secrets/tiller-secret -n "$TILLER_NAMESPACE" -o "jsonpath={.data['ca\.crt']}" | base64 --decode > tiller-ca.crt
kubectl get secrets/tiller-secret -n "$TILLER_NAMESPACE" -o "jsonpath={.data['tls\.crt']}" | base64 --decode > tiller.crt
kubectl get secrets/tiller-secret -n "$TILLER_NAMESPACE" -o "jsonpath={.data['tls\.key']}" | base64 --decode > tiller.key
helm list --tiller-connection-timeout 30 --tls --tls-ca-cert tiller-ca.crt --tls-cert tiller.crt --tls-key tiller.key --all --tiller-namespace gitlab-managed-apps
然后你可以运行:
helm delete <name> [--purge] --tiller-connection-timeout 30 --tls --tls-ca-cert tiller-ca.crt --tls-cert tiller.crt --tls-key tiller.key --tiller-namespace gitlab-managed-apps
编辑:
@mrvnklm建议为base64使用-D选项。在我的情况下,它不再起作用,“d”大写。经过检查,我猜这是适用于macOs的用户(man page base64 osx)。对于linux,它似乎是“-d”(man page linux)。根据mrvnklm的评论改为“--decode”。
当你做了一个“仅客户端”helm --init
时,helm不知道如何找到正确的tiller
实例。
您需要在随后的helm list
调用中指定分蘖的位置。
这在helm安装文档here中有所涉及。您将需要设置HELM_HOST
环境变量,或者为每次调用添加--host
。您还需要指定(并且可以访问)用于进行Gitlab Auto DevOps连接的任何TLS证书。