【问题标题】:Delete auto deployed charts by using gitlabs tiller instance?使用 gitlabs 分蘖实例删除自动部署的图表?
【发布时间】:2019-02-19 09:19:52
【问题描述】:

我正在使用 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

【问题讨论】:

  • export TILLER_NAMESPACE=gitlab-managed-apps - 这允许 helm 客户端与安装在该命名空间上的分蘖通信

标签: kubernetes gitlab-ci kubernetes-helm


【解决方案1】:

我遇到了同样的问题。我在这里找到了列出版本的解决方案: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”。

【讨论】:

  • 非常感谢!
  • 您也可以使用--decode,这样它就可以在两个平台上运行
【解决方案2】:

当您执行“仅限客户端”helm --init 时,helm 不知道如何找到正确的 tiller 实例。

您需要在随后对helm list 的调用中指定分蘖的位置。

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

【讨论】:

  • 好的,设置 TILLER_NAMESPACE 后我得到一个Error: transport is closing,这似乎是与权限或证书有关的问题?有没有办法获得 gitlab 用来与分蘖通信的证书?
  • 是的,如果您在未正确配置 TLS 的情况下调用 helm,就会出现这种错误。不确定 Gitlab 将 TLS 证书存储在哪里以及如何/是否可以轻松获取它们。
猜你喜欢
  • 2019-05-05
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 2019-08-13
  • 2022-01-28
相关资源
最近更新 更多