Сбой диапазона зависимостей руля

#kubernetes-helm #helm3

Вопрос:

Возьмите зонтичную диаграмму, umbrella_chart, с одним подразделом, sub_chart:

umbrella_chart имеет зависимости, определенные следующим образом в его диаграмме.yaml:

 apiVersion: v2
name: umbrella_chart
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

appVersion: 0.1.0

dependencies:
  - name: sub_chart
    version: "~0.1.0"
    repository: "@local-development"
 

И у sub_chart есть диаграмма.ямл, как:

 apiVersion: v2
name: sub_chart
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

maintainers:
  - name: Me

appVersion: 0.1.0
 

В рамках моего конвейера CI/CD я хочу добавить номер сборки Дженкинса к номеру версии sub_chart, прежде чем упаковывать и нажимать. Это прекрасно работает. Для сборки 123 я получаю версию 0.1.0-123, переведенную на локальную разработку.

 helm search repo --versions --devel
NAME                            CHART VERSION   APP VERSION     DESCRIPTION                      
local-development/sub_chart       0.1.0-123      0.1.0           A Helm chart for Kubernetes   
 

Однако при запуске helm dep up umbrella_chart я получаю следующую ошибку:

 Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "local-development" chart repository
Update Complete. ⎈Happy Helming!⎈
Error: can't get a valid version for repositories sub_chart. Try changing the version constraint in Chart.yaml
 

Я думал, что использование тильды позволит рулю взять любую версию диаграммы >0.1.0 и > Нужно ли мне иметь версию 0.1.0 sub_chart в моем репозитории, чтобы иметь возможность создавать umbrella_chart? Будет ли он использовать правильную версию sub_chart 0.1.0-123 в этом случае?

Спасибо за любую помощь

Ответ №1:

Похоже, что мои зависимости не были правильно определены для приема предварительных выпусков, я основал свое исправление на этом.

Моя новая диаграмма/диаграмма umbrella_chart.yaml выглядит так:

 apiVersion: v2
name: umbrella_chart
description: A Helm chart for Kubernetes

type: application

version: 0.1.0

appVersion: 0.1.0

dependencies:
  - name: sub_chart
    version: "~0.1.0-0"
    repository: "@local-development"
 

И он правильно подбирает пререлизы.