如何从现有的 github 项目添加 helm 存储库?

all*_*tej 9 kubernetes kubernetes-helm

我有一个现有的 github 项目。我想helm在项目中创建/添加一个文件夹来存储 helm yaml 文件。我想引用这个 github 项目/文件夹来充当我的本地/开发环境中的 helm 存储库。我知道我可以将图表添加到我的本地/默认 helm 存储库中。用例是,如果另一个开发人员检查了 github 中的代码并且他需要处理图表,那么他可以helm install直接从工作文件夹运行。该helm.sh网站有添加分支的说明gh-pages,但我想知道是否可以避免它。

我可以通过命令使用现有的 github 项目吗helm repo add

小智 8

不幸的是,我无法找到使用私有存储库通过 GitHub 发布 helm 图表的方法。从理论上讲,它可能可以使用 GitHub 令牌和第二种(原始 URL 方法),但我还没有尝试过。由于您无论如何都在使用 docker 注册表,因此可能值得尝试使用 OCI (docker) 注册表来存储图表。

如果这不起作用,或者您有公共存储库,则可以使用 GitHub Pages,或使用 GitHub 原始 URL。这两种解决方案都需要公共存储库。

要使用GitHub 页面

  • 设置github页面以将docs文件夹发布为github页面(您可以使用不同的名称,稍后替换即可)
  • 将 helm 存储库打包为 .tgz (使用helm package):helm package charts/mychart -d docs/。替换charts/mychart为图表根文件夹的路径
  • 包含一个index.yaml——存储库的索引文件helm repo index ./docs --url https://<YOUR_ORG_OR_USERNAME>.github.io/<REPO_NAME>

现在您可以添加存储库:helm repo add <INTERNAL_NAME> https://<YOUR_ORG_OR_USERNAME>.github.io/<REPO_NAME>

要使用原始 URL

  • 将 index.yaml 和图表 TGZ 放入名为 的文件夹中docs,就像上面一样

现在您可以添加一个存储库:helm repo add <INTERNAL_NAME> https://raw.githubusercontent.com/<YOUR_ORG_OR_USERNAME>/<REPO_NAME>/<BRANCH_USUALLY_MASTER>/docs


Mal*_*ata 6

首先确保您拥有功能齐全的 helm 存储库。棘手的部分是像访问托管原始文件的简单 HTTP 服务器一样访问它。幸运的是,Github 使用raw.githubusercontent.com. 为了让 helm 能够从此类存储库中提取文件,您需要为其提供 Github 用户名和令牌(个人访问令牌):

> helm repo add - username <your_github_username> - password <your_github_token> my-github-helm-repo 'https://raw.githubusercontent.com/my_organization/my-github-helm-repo/master/'
> helm repo update
> helm repo list
NAME URL
stable https://kubernetes-charts.storage.googleapis.com
local http://127.0.0.1:8879/charts
my-github-helmrepo https://raw.githubusercontent.com/my_organization/my-github-helm-repo/master/
> helm search my-app
NAME CHART VERSION APP VERSION DESCRIPTION
my-github-helmrepo/my-app-chart 0.1.0 1.0 A Helm chart for Kubernetes
Run Code Online (Sandbox Code Playgroud)

这些是将新包添加到现有存储库的步骤

如果您想简单地将新包添加到现有存储库中:

1.将新包放入本地存储库根目录中

2.执行:helm repo index .. 这将检测新文件/文件夹并进行更新。

3.提交并推送你的新包

4.最后执行命令:helm repo update

安全方面

重要的是要了解 helm 实际存储您的Github 令牌的位置。它以纯文本形式存储在~/.helm/repository/repositories.yaml. 在这种情况下,最好生成具有尽可能少的权限的令牌。

看一下这里:托管 helm 私有存储库