搭建私有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:
ChartMuseum提供其他特性,如chart上传的API。