git - 从 Jenkins 将 Helm Charts 部署到 Kubernetes 服务器

标签 git jenkins kubernetes kubernetes-helm

我希望能够使用 Jenkins 执行的 Helm 图表(作为构建周期的一部分)自动部署到我的 Kubernetes 集群。 Jenkins 机器与 Kubernetes 集群位于一个单独的网络上(而不是像许多博客中记录的那样是它的一部分)。

我在私有(private) GitHub 帐户中托管了一个图表存储库。我遵循了这里的过程:https://hackernoon.com/using-a-private-github-repo-as-helm-chart-repo-https-access-95629b2af27c并能够使用以下格式的命令将其作为存储库添加到 Azure 服务器上的 Helm 中:

helm repo add sample 'https://MY_PRIVATE_TOKEN@raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/'

我一直在尝试让 Jenkins 中的 ElasticBox Kubernetes CI/CD (v1.3) 插件连接到这个图表存储库,但每当我按下“测试连接”时,我都会收到 400 Bad Request 错误。我尝试过以多种方式输入详细信息:

  1. 使用与上述相同的格式(和 token )并且没有凭据
  2. 在凭据中使用私有(private) token (与上面的查询相同)和 https://raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/ 的 url
  3. 在凭证中使用我的用户名和密码,以及 https://raw.githubusercontent.com/kmzfs/helm-repo-in-github/master/ 的网址

我有这个插件可以连接到 Kubernetes 云,它可以连接到位于 https://github.com/helm/charts 的存储库并部署 RabbitMQ 容器。

是否可以让此插件作为图表存储库连接到私有(private) Github 存储库?如果可以,我该怎么做?

如果没有,是否有其他方法可以从 Jenkins 部署 Helm 图表(在私有(private)仓库中)?我找不到任何其他使用 Helm 的插件。

谢谢 邓肯

最佳答案

我们在 CI 中使用的是完全跳过任何时髦的 Jenkins 插件,只使用 native 工具。我们将 kubectl/helm 烘焙到 jenkins/worker 镜像中,为他们提供凭证,以便他们可以与集群对话,然后不是从已发布的图表中获取私有(private) Helm 图表,而是直接从持有该图表的私有(private) git 仓库中获取。然后我们只需使用常规脚本步骤针对这个本地克隆的图表运行 helm

定义 ca 证书的 kube 配置部分示例(与下面的评论相关):

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <base64 ca cert>
    server: https://cluster_api_url
  name: mycluster

关于git - 从 Jenkins 将 Helm Charts 部署到 Kubernetes 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48791270/

相关文章:

docker - 在OpenShift上设置OrientDB服务器集群

jenkins - 如何使管道作业等待所有触发的并行作业?

git - Jenkins 构建屏幕上的 SCM 更改是如何确定的?

git - git 中的库和示例循环依赖

git - 如何将现有目录链接到现有的 git repo

jenkins - 如何识别在 Jenkins 上创建特定工作的用户?

ssl - 我如何在 Kubernetes 中使用搜索域

namespaces - 跨命名空间共享 secret

git - 有什么类似于 Perforce 的 git-svn 吗?

git - 删除本地不存在的远程分支