Перейти к основному содержимому
Версия: 3.19.0

Синхронизация репозитория чартов

Примечание: этот пример предназначен специально для бакета Google Cloud Storage (GCS), используемого в качестве репозитория чартов.

Предварительные требования

  • Установите инструмент gsutil. Основная часть работы выполняется через gsutil rsync
  • Убедитесь, что Helm установлен и доступен
  • Опционально: мы рекомендуем включить версионирование объектов в вашем GCS-бакете на случай случайного удаления данных.

Настройка локального каталога репозитория чартов

Создайте локальный каталог, как описано в руководстве по репозиториям чартов, и поместите в него упакованные чарты.

Например:

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

Генерация обновлённого index.yaml

Используйте Helm для генерации обновлённого файла index.yaml, передав путь к каталогу и URL удалённого репозитория команде helm repo index:

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

Эта команда сгенерирует обновлённый файл index.yaml и поместит его в каталог fantastic-charts/.

Синхронизация локального и удалённого репозиториев чартов

Загрузите содержимое каталога в ваш GCS-бакет, запустив скрипт scripts/sync-repo.sh с указанием имени локального каталога и имени GCS-бакета.

Например:

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

Обновление репозитория чартов

Храните локальную копию содержимого вашего репозитория чартов или используйте gsutil rsync для копирования содержимого удалённого репозитория чартов в локальный каталог.

Например:

$ gsutil rsync -d -n gs://bucket-name local-dir/    # the -n flag does a dry run
Building synchronization state...
Starting synchronization
Would copy gs://bucket-name/alpine-0.1.0.tgz to file://local-dir/alpine-0.1.0.tgz
Would copy gs://bucket-name/index.yaml to file://local-dir/index.yaml

$ gsutil rsync -d gs://bucket-name local-dir/ # performs the copy actions
Building synchronization state...
Starting synchronization
Copying gs://bucket-name/alpine-0.1.0.tgz...
Downloading file://local-dir/alpine-0.1.0.tgz: 740 B/740 B
Copying gs://bucket-name/index.yaml...
Downloading file://local-dir/index.yaml: 346 B/346 B

Полезные ссылки: