1. Helm Chart 仓库
本节介绍如何创建和使用 Chart 仓库。在高层级中,Chart 仓库是打包的 Chart 存储和分享的位置。
社区的 Helm Chart 仓库位于 Artifact Hub,欢迎加入。 不过 Helm 也可以创建并运行你自己的 Chart仓 库。该指南将介绍如何操作。
[!NOTE|style:flat] 从 Helm 2.2.0 开始,客户端支持对仓库进行 SSL 身份认证。其他身份验证协议可以通过插件提供。
由于 Chart 仓库可以是任何服务于 YAML 和 tar 文件并响应 GET 请求的 HTTP 服务器,托管你自己的 Chart 仓库时就有很多选择。比如可以使用 Google Cloud Storage(GCS), Amazon S3,GitHub 页面,甚至创建自己的 Web 服务器。
1.1. Chart 仓库结构
Chart 仓库是一个配置了 index.yaml 文件和一些已经打包 Chart 的 HTTP 服务器。当你准备好分享 Chart 时,最好的方法是将 Chart 上传到 Chart 仓库。
Chart 仓库由 Chart 包和包含了仓库中所有 Chart 索引的特殊文件 index.yaml。
通常描述 Chart 的 index.yaml 也托管在同一个服务器上作为来源文件。
比如,https://example.com/charts
仓库布局可能看起来像这样:
charts/
|
|- index.yaml
|
|- alpine-0.1.2.tgz
|
|- alpine-0.1.2.tgz.prov
在这个案例中,index 文件包含了 Alpine 这一个 Chart 的信息,并提供了下载地址:
index.yaml 文件不是必须和 Chart 包放在同一个服务器上,但是这样是最方便的。
1.2. index文件
index.yaml 文件是一个 yaml 格式的文件。包含了一些包的元信息,包括 Chart 中 Chart.yaml 文件的内容。 一个合法的 Chart 仓库必须有一个 index 文件,包含了 Chart 仓库中每一个 Chart 的信息。 helm repo index
命令会基于给定的包含 Chart 包的本地目录生成一个 index 文件。
index文件类似于这样:
apiVersion: v1
entries:
alpine:
- created: 2016-10-06T16:23:20.499814565-06:00
description: Deploy a basic Alpine Linux pod
digest: 99c76e403d752c84ead610644d4b1c2f2b453a74b921f422b9dcb8a7c8b559cd
home: https://helm.sh/helm
name: alpine
sources:
- https://github.com/helm/helm
urls:
- https://technosophos.github.io/tscharts/alpine-0.2.0.tgz
version: 0.2.0
- created: 2016-10-06T16:23:20.499543808-06:00
description: Deploy a basic Alpine Linux pod
digest: 515c58e5f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cd78727
home: https://helm.sh/helm
name: alpine
sources:
- https://github.com/helm/helm
urls:
- https://technosophos.github.io/tscharts/alpine-0.1.0.tgz
version: 0.1.0
nginx:
- created: 2016-10-06T16:23:20.499543808-06:00
description: Create a basic nginx HTTP server
digest: aaff4545f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cdffffff
home: https://helm.sh/helm
name: nginx
sources:
- https://github.com/helm/charts
urls:
- https://technosophos.github.io/tscharts/nginx-1.1.0.tgz
version: 1.1.0
generated: 2016-10-06T16:23:20.499029981-06:00