同步你的Chart仓库

注意: 该示例是专门针对Google Cloud Storage (GCS)提供的chart仓库。

先决条件

  • 安装 gsutil工具。 我们非常依赖gsutil rsync功能
  • 确保可以使用Helm程序
  • 可选:我们推荐在你的GCS中设置 对象版本以防不小心删除了什么。

设置本地chart仓库目录

就像我们在 chart仓库指南做的,创建一个本地目录,并将打包好的chart放在该目录中。

例如:

  1. $ mkdir fantastic-charts
  2. $ mv alpine-0.1.0.tgz fantastic-charts/

生成新的index.yaml

使用Helm生成新的index.yaml文件,通过将目录路径和远程仓库url传递给helm repo index命令:

  1. $ helm repo index fantastic-charts/ --url https://fantastic-charts.storage.googleapis.com

这会生成新的index.yaml文件并放在fantastic-charts/目录。

同步本地和远程仓库

使用scripts/sync-repo.sh命令上传GCS目录中的内容并传入本地目录名和GCS名。

例如:

  1. $ pwd
  2. /Users/me/code/go/src/helm.sh/helm
  3. $ scripts/sync-repo.sh fantastic-charts/ fantastic-charts
  4. Getting ready to sync your local directory (fantastic-charts/) to a remote repository at gs://fantastic-charts
  5. Verifying Prerequisites....
  6. Thumbs up! Looks like you have gsutil. Let's continue.
  7. Building synchronization state...
  8. Starting synchronization
  9. Would copy file://fantastic-charts/alpine-0.1.0.tgz to gs://fantastic-charts/alpine-0.1.0.tgz
  10. Would copy file://fantastic-charts/index.yaml to gs://fantastic-charts/index.yaml
  11. Are you sure you would like to continue with these changes?? [y/N]} y
  12. Building synchronization state...
  13. Starting synchronization
  14. Copying file://fantastic-charts/alpine-0.1.0.tgz [Content-Type=application/x-tar]...
  15. Uploading gs://fantastic-charts/alpine-0.1.0.tgz: 740 B/740 B
  16. Copying file://fantastic-charts/index.yaml [Content-Type=application/octet-stream]...
  17. Uploading gs://fantastic-charts/index.yaml: 347 B/347 B
  18. Congratulations your remote chart repository now matches the contents of fantastic-charts/

更新你的chart仓库

您需要保留chart仓库内容的本地副本或使用gsutil rsync拷贝远程chart仓库内容到本地目录。

例如:

  1. $ gsutil rsync -d -n gs://bucket-name local-dir/ # the -n flag does a dry run
  2. Building synchronization state...
  3. Starting synchronization
  4. Would copy gs://bucket-name/alpine-0.1.0.tgz to file://local-dir/alpine-0.1.0.tgz
  5. Would copy gs://bucket-name/index.yaml to file://local-dir/index.yaml
  6. $ gsutil rsync -d gs://bucket-name local-dir/ # performs the copy actions
  7. Building synchronization state...
  8. Starting synchronization
  9. Copying gs://bucket-name/alpine-0.1.0.tgz...
  10. Downloading file://local-dir/alpine-0.1.0.tgz: 740 B/740 B
  11. Copying gs://bucket-name/index.yaml...
  12. Downloading file://local-dir/index.yaml: 346 B/346 B

帮助链接: