1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/AliyunContainerService-chartmuseum

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ChartMuseum

CircleCI Go Report Card GoDoc "Сохраните ваши ценные артефакты... в облаках!"

ChartMuseum — это открытое исходное программное обеспечение для Хранилища шаблонов Helm, написанное на Go (Golang), с поддержкой облачных хранилищ, включая Google Cloud Storage, Amazon S3 и Microsoft Azure Blob Storage.

Работает как действительное хранилище шаблонов Helm и также предоставляет API для загрузки новых пакетов шаблонов в хранилище и т.д.

Поддерживается отличной технологией Go:

  • Kubernetes Helm - для работы со шаблонами, генерации индекса хранилища
  • Gin Web Framework - для маршрутизации HTTP запросов
  • CLI - для парсинга опций командной строки
  • Zap - для логирования

Выводы, сделанные в сообществе Helm

"Наконец-то!!">"ChartMuseum замечательна"

"Это просто отлично!"

"О да!!!! Я ждал этого так долго. Это значительно упрощает жизнь, особенно при создании файла index.yaml."

"Я думал о том, чтобы самому написать что-то подобное. Это идеально! Спасибо!"

"Я прыгаю от радости благодаря ChartMuseum, полноценному серверу для управления хранилищем Helm с возможностью загрузки."

"Это действительно круто... У нас есть процесс, который генерирует файл индекса и затем загружает его, поэтому это очень полезно."

"Действительно хорошая идея... действительно-таки великолепная, спасибо еще раз. Я могу использовать nginx для хранения репозиториев и museum для добавления/удаления шаблонов. Это целый жизненный цикл управления шаблонами с текущим Helm." >"спасибо за создание музея!"

API

Helm Chart Repository

  • GET /index.yaml - получается при выполнении команды helm repo add chartmuseum http://localhost:8080/
  • GET /charts/mychart-0.1.0.tgz - получается при выполнении команды helm install chartmuseum/mychart
  • GET /charts/mychart-0.1.0.tgz.prov - получается при выполнении команды helm install с флагом --verify

Изменение чартов

  • POST /api/charts - загрузка новой версии чарта
  • POST /api/prov - загрузка нового файла provenance
  • DELETE /api/charts/<name>/<version> - удаление версии чарта (и соответствующего файла provenance)
  • GET /api/charts - вывод всех чартов
  • GET /api/charts/<name> - вывод всех версий конкретного чарта
  • GET /api/charts/<name>/<version> - описание версии чарта### Информация о сервере
  • GET /health - возвращает 200 OK

Загрузка пакета чарта

Следуйте разделу "Как запустить" ниже, чтобы запустить ChartMuseum по адресу http://localhost:8080

Сначала создайте mychart-0.1.0.tgz с помощью Helm CLI:

cd mychart/
helm package .

Загрузите mychart-0.1.0.tgz:

curl --data-binary "@mychart-0.1.0.tgz" http://localhost:8080/api/charts

Если вы подписали свой пакет и сгенерировали файл provenance, загрузите его с помощью:

curl --data-binary "@mychart-0.1.0.tgz.prov" http://localhost:8080/api/prov

Оба файла также могут быть загружены одновременно (или по отдельности) через маршрут /api/charts, используя формат multipart/form-data:

curl -F "chart=@mychart-0.1.0.tgz" -F "prov=@mychart-0.1.0.tgz.prov" http://localhost:8080/api/charts

Установка чартов в Kubernetes

Добавьте URL вашего установочного экземпляра ChartMuseum в список локальных репозиториев:

helm repo add chartmuseum http://localhost:8080

Поиск чартов:

helm search chartmuseum/

Установка чарта:

helm install chartmuseum/mychart

Как запустить

CLI

Установка

Установите бинарник:

# на Linux
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum

# на macOS
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/darwin/amd64/chartmuseum

# на Windows
curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/windows/amd64/chartmuseum

Дайте исполняемые права бинарному файлу:

chmod +x ./chartmuseum
mv ./chartmuseum /usr/local/bin

Используйте latest в URL выше, чтобы получить последнюю версию бинарника (построенную с мастера).Замените latest на $(curl -s https://s3.amazonaws.com/chartmuseum/release/stable.txt), чтобы автоматически определять последнее стабильное издание (например, v0.3.0).

Определите вашу версию с помощью команды chartmuseum --version.

Конфигурация

Показывает все опции командной строки с помощью chartmuseum --help. Общие конфигурации можно увидеть ниже.

Все опции командной строки могут быть указаны как переменные окружения, которые определяются опцией командной строки, приведённой в верхнем регистре, с заменой всех дефисов на нижние черты.

Например, переменная окружения STORAGE_AMAZON_BUCKET может использоваться вместо --storage-amazon-bucket.

Использование с Amazon S3

Убедитесь, что ваше окружение правильно настроено для доступа к my-s3-bucket.

chartmuseum --debug --port=8080 \
  --storage="amazon" \
  --storage-amazon-bucket="my-s3-bucket" \
  --storage-amazon-prefix="" \
  --storage-amazon-region="us-east-1"

Вы должны иметь хотя бы следующие права доступа внутри своей политики IAM

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowListObjects",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::my-s3-bucket"
    },
    {
      "Sid": "AllowObjectsCRUD",
      "Effect": "Allow",
      "Action": [
        "s3:DeleteObject",
        "s3:GetObject",
        "s3:PutObject"
      ],
      "Resource": "arn:aws:s3:::my-s3-bucket/*"
    }
  ]
}

Использование с Google Cloud Storage

Убедитесь, что ваше окружение правильно настроено для доступа к my-gcs-bucket.

chartmuseum --debug --port=8080 \
  --storage="google" \
  --storage-google-bucket="my-gcs-bucket" \
  --storage-google-prefix=""
```#### Использование с Microsoft Azure Blob Storage

Убедитесь, что ваше окружение правильно настроено для доступа к `mycontainer`.

Для этого вам нужно установить следующие переменные окружения:
- `AZURE_STORAGE_ACCOUNT`
- `AZURE_STORAGE_ACCESS_KEY`

```bash
chartmuseum --debug --port=8080 \
  --storage="azure" \
  --storage-microsoft-container="mycontainer" \
  --storage-microsoft-prefix=""

Использование с локальной файловой системой

Убедитесь, что вы имеете права на чтение/запись к ./chartstorage (будет создан, если не существует)

chartmuseum --debug --port=8080 \
  --storage="local" \
  --storage-local-rootdir="./chartstorage"

Базовая аутентификация

Если оба следующих параметра указаны, базовая HTTP-аутентификация будет защищать все маршруты:

  • --basic-auth-user=<user> - имя пользователя для базовой HTTP-аутентификации
  • --basic-auth-pass=<pass> - пароль для базовой HTTP-аутентификации

Вы можете захотеть использовать базовую аутентификацию только для операций, которые могут изменять диаграммы, то есть для методов PUT, POST и DELETE. Чтобы избежать использования базовой аутентификации для операций GET, используйте:

  • --auth-anonymous-get - разрешение анонимных операций GET

HTTPS

Если оба следующих параметра указаны, сервер будет прослушивать и обслуживать HTTPS:

  • --tls-cert=<crt> - путь до файла цепочки сертификатов TLS
  • --tls-key=<key> - путь до файла ключа TLS

Только генерация index.yaml

Вы можете указать опцию --gen-index, если хотите использовать ChartMuseum только для генерации вашего файла index.yaml.Содержимое файла index.yaml будет выведено в стандартный вывод, после чего программа завершится. Это полезно, если вы довольны текущим процессом CI/CD Helm и/или не хотите мониторить ещё одну веб-службу.

Другие опции командной строки

  • --log-json — вывод структурированных логов в формате JSON
  • --disable-api — отключение всех маршрутов, начинающихся с префикса /api
  • --allow-overwrite — разрешение повторной загрузки версий диаграмм
  • --chart-url=<url> — абсолютный URL для .tgz в index.yaml
  • --storage-amazon-endpoint=<endpoint> — альтернативный конечный адрес S3
  • --storage-amazon-sse=<algorithm> — алгоритм шифрования стороннего сервера S3
  • --chart-post-form-field-name=<field> — поле формы, которое будет запрошено для содержимого файла диаграммы
  • --prov-post-form-field-name=<field> — поле формы, которое будет запрошено для содержимого файла справедливости

Изображение Docker

Доступно через Docker Hub.

Пример использования (S3):

docker run --rm -it \
  -p 8080:8080 \
  -e PORT=8080 \
  -e DEBUG=1 \
  -e STORAGE="amazon" \
  -e STORAGE_AMAZON_BUCKET="my-s3-bucket" \
  -e STORAGE_AMAZON_PREFIX="" \
  -e STORAGE_AMAZON_REGION="us-east-1" \
  -v ~/.aws:/root/.aws:ro \
  chartmuseum/chartmuseum:latest

Helm Chart

Существует Helm chart для ChartMuseum сам по себе, который можно найти в официальном репозитории Kubernetes Charts.

Вы также можете просмотреть его на Kubeapps Hub. Для установки:

helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com
helm install incubator/chartmuseum
```Если вас интересует внесение изменений, пожалуйста, отправьте Pull Request в kubernetes/charts. Перед выполнением работы проверьте наличие любых [текущих открытых Pull Requests](https://github.com/kubernetes/charts/pulls?q=is%3Apr+is%3Aopen+chartmuseum). Спасибо!

## Примечания по index.yaml
Индекс репозитория (index.yaml) генерируется динамически на основе найденных в хранилище пакетов. Если вы храните свою версию файла index.yaml, он будет полностью игнорирован.

`GET /index.yaml` выполняется при выполнении команд `helm repo add chartmuseum http://localhost:8080` или `helm repo update`.

Если вы вручную добавляете/удаляете пакет .tgz из хранилища, изменения будут немедленно отражены в `GET /index.yaml`.

Вы больше не обязаны поддерживать свою версию файла index.yaml с помощью `helm repo index --merge`.

CLI опция `--gen-index` (описана выше) может использоваться для генерации и вывода index.yaml в stdout.

## Отображение официальных репозиториев Kubernetes
Пожалуйста, обратитесь к скрипту `scripts/mirror_k8s_repos.sh`, чтобы узнать, как скачать все .tgz пакеты из официальных репозиториев Kubernetes (как стабильных, так и incubator).

Затем вы можете использовать *ChartMuseum*, чтобы предоставить внутреннее зеркало:

scripts/mirror_k8s_repos.sh chartmuseum --debug --port=8080 --storage="local" --storage-local-rootdir="./mirror"


## Сообщество
Вы можете связаться с сообществом и разработчиками *ChartMuseum* в канале **#chartmuseum** на [Slack Kubernetes](https://slack.k8s.io).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ChartMuseum — это репозиторий Helm-чартов с открытым исходным кодом, написанный на Go (Golang). Он поддерживает облачные хранилища, включая Google Cloud Storage, Amazon S3 и Microsoft Azure Blob Storage. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/AliyunContainerService-chartmuseum.git
git@api.gitlife.ru:oschina-mirror/AliyunContainerService-chartmuseum.git
oschina-mirror
AliyunContainerService-chartmuseum
AliyunContainerService-chartmuseum
master