存储库
搭建私有 Chart 仓库
chart 库是带有一个 index.yaml 文件和任意个打包 cahrt 的 HTTP 服务器。当准备好分享 chart 时,首选方法是将其上传到 chart 库。
由于 chart 库可以是任何可以提供 YAML 和 tar 文件并可以回答 GET 请求的 HTTP 服务器,因此当托管自己的 chart 库时,很多选择。例如,可以使用 Google 云端存储(GCS)存储桶,Amazon S3 存储桶,Github Pages,甚至可以创建自己的 Web 服务器。
chart 库结构
chart 库由打包的 chart 和一个名为的特殊文件组成,index.yaml 其中包含 chart 库中所有 chart 的索引。通常,index.yaml 描述的 chart 也是托管在同一台服务器上,源代码文件也是如此。例如,chart 库的布局 https://example.com/charts 可能如下所示:
charts/
|
|- index.yaml
|
|- alpine-0.1.2.tgz
|
|- alpine-0.1.2.tgz.prov
这种情况下,索引文件包含有关一个 chart(Alpine chart)的信息,并提供该 chart 的下载 URL https://example.com/charts/alpine-0.1.2.tgz。不要求 chart 包与 index.yaml 文件位于同一台服务器上 。但是,发在一起这样做通常是最简单的。
托管 chart 库
本部分介绍了提供 chart 库的几种方法。
ChartMuseum
Helm 提供了一个 open-source Helm 库服务叫 ChartMuseum,你可以自己托管这个服务.
ChartMuseum 支撑多种云存储后端. 配置它指向你存放 chart 包的目录或者 bucket,index.yaml 文件会自动动态生成。
它也可以通过 Helm chart 部署:
helm install stable/chartmuseum
或者 Docker image:
docker run --rm -it \
-p 8080:8080 \
-v $(pwd)/charts:/charts \
-e DEBUG=true \
-e STORAGE=local \
-e STORAGE_LOCAL_ROOTDIR=/charts \
chartmuseum/chartmuseum
你可以将它加到本地存储库:
helm repo add chartmuseum http://localhost:8080
ChartMuseum 提供其他特性, 如 chart 上传的 API。