Обработка файла YAML на этапе плагина Kubernetes выдает ошибку, если в имени изображения есть / косая черта

Изображение в yaml развертывания имеет следующий формат:

'${DockerRegistry}/${orgName}/${projectName}/${ImageName}:${version}'

В имени образа после имени реестра докеров есть 3 косых черты, и это вызывает ошибку. Я пробовал с плагином Kubernetes 16, 17, 18 и 19, и шаг процесса Yaml Kubernetes выдает ошибку ниже.

Loading /opt/ibm-ucd/agent/var/work/lr-central-credit-register/common/openshift/dc.yml The desired versions for existing image components is [:] Creating ibm-ucd-kubernetes.yaml Creating component: cbrpoc-loan-requests-cbrpoc-loan-requests/lr-central-credit-register Caught: java.io.IOException: 400 Error processing command: Name cannot contain the following characters: / \ [ ] % java.io.IOException: 400 Error processing command: Name cannot contain the following characters: / \ [ ] % at com.urbancode.ud.client.UDRestClient.invokeMethod(UDRestClient.java:225) at com.urbancode.ud.client.ComponentClient.createComponent(ComponentClient.java:180) at processyaml.createComponent(processyaml.groovy:481) at processyaml.this$4$createComponent(processyaml.groovy) at processyaml$_run_closure6.doCall(processyaml.groovy:362) at processyaml.run(processyaml.groovy:325)

person anusha gadipudi    schedule 20.07.2019    source источник
comment
Я вижу только две косые черты в вашем образце формата, где третья?   -  person peedee    schedule 20.07.2019
comment
Между именем организации и именем проекта есть косая черта. $ {DockerRegistry} / $ {orgName} / $ {projectName} / $ {ImageName}: $ {version обновила вопрос   -  person anusha gadipudi    schedule 21.07.2019


Ответы (1)


Согласно официальной документации Docker Registry HTTP API V2

Имя репозитория разбито на компоненты пути. Компонент имени репозитория должен состоять как минимум из одного буквенно-цифрового символа в нижнем регистре, необязательно разделенных точками, дефисами или подчеркиванием. Точнее, он должен соответствовать регулярному выражению [a-z0-9] + (?: [._-] [a-z0-9] +) *. Если имя репозитория имеет два или более компонентов пути, они должны быть разделены косой чертой («/»). Общая длина имени репозитория, включая косую черту, не должна превышать 256 символов.

Убедитесь, что вы используете Docker Registry HTTP API V2 и соблюдаете все вышеперечисленные правила.

Хотя протокол реестра V1 можно использовать, в архитектуре есть несколько проблем, которые привели к V2.

Кроме того, вы можете попробовать использовать тег Docker.

Создайте тег TARGET_IMAGE, который ссылается на SOURCE_IMAGE

Дополнительная информация с примерами, приведенными выше.

Пожалуйста, дайте мне знать, помогло ли это.

person Wytrzymały Wiktor    schedule 26.07.2019