使用 gitlabs tiller 实例删除自动部署的图表?

Delete auto deployed charts by using gitlabs tiller instance?

我正在使用 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-appsreturns Error: could not find tiller

正如您所做的 "client-only" helm --init,helm 不知道如何找到正确的 tiller 实例。

您需要在后续调用 helm list 时指定舵柄的位置。

helm 安装文档here 中提到了这一点。您将需要设置 HELM_HOST 环境变量,或将 --host 添加到每个调用。您还需要指定(并有权访问)用于建立 Gitlab Auto DevOps 连接的任何 TLS 证书。

我遇到了同样的问题。我找到了在此处列出版本的解决方案: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). For linux, it seems to be "-d" (man page linux)。根据 mrvnklm 的评论更改为“--decode”。