K8s: как установить графики из Helm Hub - PullRequest
2 голосов
/ 02 апреля 2020

Отказ от ответственности: я новичок в Kubernetes и Helm.

Я пытаюсь установить диаграмму Helm, используя совершенно новый Helm Hub, и я не могу понять, как это предполагается на работу.

Новая версия Helm (3.0) была выпущена всего за несколько месяцев go со значительными изменениями, одним из которых является то, что она не поставляется с настроенными репозиториями. Helm выпустил Helm Hub, который должен быть централизованным сервисом для поиска диаграмм.

Я пытаюсь установить диаграмму CloudBees Jenkins. Вот что я получаю при поиске в хабе:

[me@localhost tmp]$ helm search hub cloudbees -o yaml
- app_version: 2.222.1.1
  description: The Continuous Delivery Solution for Enterprises
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-core
  version: 3.12.0+80c17a044bc4
- app_version: 9.2.0.139827
  description: A Helm chart for CloudBees Flow
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-flow
  version: 1.1.1
- app_version: 9.2.0.139827
  description: A Helm chart for CloudBees Flow Agent
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-flow-agent
  version: 1.1.1
- app_version: 2.204.3.7
  description: CloudBees Jenkins Distribution provides development teams with a highly
    dependable, secure, Jenkins environment curated from the most recent supported
    Jenkins release. The distribution comes with a recommended catalog of tested plugins
    available through the CloudBees Assurance Program.
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution
  version: 2.204.307
- app_version: 2.0.2
  description: Helm chart for sidecar injector webhook deployment
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-sidecar-injector
  version: 2.0.2

Похоже, что график, который я ищу, доступен: cloudbees-jenkins-distribution.

Однако я не могу найти любой способ установки из концентратора или добавления репозитория на основе выходных данных концентратора. Вот некоторые из вещей, которые я пробовал:

[me@localhost tmp]$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "incubator" chart repository
...Successfully got an update from the "gitlab" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈ 

[me@localhost tmp]$ helm install myJenkins cloudbees-jenkins-distribution
Error: failed to download "cloudbees-jenkins-distribution" (hint: running `helm repo update` may help)

[me@localhost tmp]$ helm repo add cbRepo https://hub.helm.sh/charts/cloudbees
Error: looks like "https://hub.helm.sh/charts/cloudbees" is not a valid chart repository or cannot be reached: error converting YAML to JSON: yaml: line 8: mapping values are not allowed in this context

[me@localhost tmp]$ helm repo add cbRepo https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution
Error: looks like "https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution" is not a valid chart repository or cannot be reached: error converting YAML to JSON: yaml: line 8: mapping values are not allowed in this context

Документация действительно мало говорит о том, как я должен go из Helm Hub в установленный график. Что мне здесь не хватает?

Ответы [ 3 ]

5 голосов
/ 02 апреля 2020

Helm Hub НЕ похож на репозиторий, который вы можете добавить и установить из него в виде графиков шлемов. Он также не предоставляет действительных URL репозиториев. Вот почему вы получаете сообщение об ошибке, как показано ниже:

Error: looks like "https://hub.helm.sh/charts/cloudbees" is not a valid chart repository ...

, когда вы пытаетесь запустить helm repo add на https://hub.helm.sh основе urls .

Я знаю, что это может показаться довольно запутанным, но это просто так, по своему дизайну. Пожалуйста, обратитесь к это обсуждение на Github . В частности, этот комментарий объясняет это немного больше, и я надеюсь, что он также отвечает на ваш вопрос:

hub.helm. sh не является репозиторием Helm, поэтому он не будет работать Если вы пытаетесь, он предназначен только для просмотра и поиска диаграмм. проверьте там хранилище диаграмм, и тогда вы сможете установить диаграммы.

К сожалению, официальная документация руля не объясняет это достаточно хорошо. Упоминается только:

helm search hub выполняет поиск в Helm Hub, который включает в себя таблицы рулевого управления из десятков различных хранилищ.

Но это показывает "без объяснения получить от helm search repo, который показывает hub.helm.sh до helm repo add, который волшебным образом показывает новый URL для использования. " - как один пользователь написал в потоке , упомянутом выше.

0 голосов
/ 15 апреля 2020

True, helm search hub cloudbees не возвращает URL репо.
Что вы можете сделать из результата helm search hub cloudbees: helm install $urlFromBefore:

$ helm search hub cloudbees
- app_version: 2.222.1.1
  description: The Continuous Delivery Solution for Enterprises
  url: https://hub.helm.sh/charts/cloudbees/cloudbees-core
...

$ helm install cloudbees https://hub.helm.sh/charts/cloudbees/cloudbees-core

от helm / helm # 7419


Чтобы получить URL репо, вы можете выполнить поиск по https://hub.helm.sh или
, если хотите, чтобы репо URL-адрес с консоль :

$ curl https://hub.helm.sh/api/chartsvc/v1/charts/search?q=rancher | json_pp

URL-адрес репо находится в ключе url в repo (data[...].attributes.repo.url). (json_pp не является обязательным. Он довольно печатает json, что помогает мне прочитать его.)

Теперь перейдите к

# variables names show the place in json output from above
helm repo add $data_attributes_repo_name $data_attributes_repo_url
helm repo update
helm install $data_attributes_repo_name/$data_attributes_name
0 голосов
/ 10 апреля 2020

Несмотря на то, что хелм-хаб не имеет удобного способа получить URL-адрес хранилища, он имеет репозиторий github , который содержит репозиторий всех поставщиков в одном файле.
Мы можем использовать этот факт для создания Обходной путь, который вы можете улучшить, используя такие инструменты автоматизации, как bash, awk, sed, perl, python, et c.

Давайте представим, что мы хотим получить управление диаграмма url с использованием только helm v3 и инструментов командной строки.
( helm3 - просто символическая ссылка для helm v3.1.2 )

Давайте получим репозиторий имя для jenkins дистрибутива для cloudbees вендора

$ helm3 search hub jenkins --max-col-width 1000 | grep cloudbees | tr "\t" "\n"

https://hub.helm.sh/charts/cloudbees/cloudbees-core                
3.12.0+80c17a044bc4
2.222.1.1    
The Continuous Delivery Solution for Enterprises                                                                                                               

https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution
2.204.307          
2.204.3.7    
CloudBees Jenkins Distribution provides development teams with a highly dependable, secure, Jenkins environment curated from the most recent supported Jenkins 
release. The distribution comes with a recommended catalog of tested plugins available through the CloudBees Assurance Program.

Как мы видим, страница диаграммы на хелм-хабе имеет вид

# https://hub.helm.sh/charts/cloudbees/cloudbees-jenkins-distribution
#                            ^^^^^^^^^

, поэтому мы можем предположить, что имя репозитория также cloudbees

Найдем URL для cloudbees репозитория helm

$ curl -s https://raw.githubusercontent.com/helm/hub/master/config/repo-values.yaml | grep cloudbees

    - name: cloudbees
      url: https://charts.cloudbees.com/public/cloudbees

Теперь мы можем добавить этот репозиторий с помощью команды helm repo:

$ helm3 repo add cloudbees https://charts.cloudbees.com/public/cloudbees

"cloudbees" has been added to your repositories

Don ' не забудьте обновить:

$ helm3 repo update

Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "cloudbees" chart repository
Update Complete. ⎈ Happy Helming!⎈ 

Чтобы найти название графика, давайте повторим поиск в репо

$ helm3 search repo jenkins

NAME                                            CHART VERSION           APP VERSION     DESCRIPTION                                       
cloudbees/cloudbees-jenkins-distribution        2.204.307               2.204.3.7       CloudBees Jenkins Distribution provides develop...
cloudbees/cloudbees-core                        3.12.0+80c17a044bc4     2.222.1.1       The Continuous Delivery Solution for Enterprises  

И наконец мы можем установить Все в таблице:

$ helm3 install cloudbees/cloudbees-jenkins-distribution --version 2.204.307

Счастливого Хелминга3! :)

...