如果图像名称带有/斜杠,则Kubernetes插件的处理YAML文件步骤将引发错误

时间:2019-07-20 04:48:23

标签: plugins kubernetes ucd

部署yaml中的映像具有以下格式:

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

Docker注册表名称后的映像名称中有3个正斜杠,这会导致错误。我尝试使用16、17、18和19的Kubernetes插件,而Kubernetes的Process Yaml步骤抛出以下错误。

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)

1 个答案:

答案 0 :(得分:0)

根据Docker Registry HTTP API V2的官方documentation

  

存储库名称分为路径组件。一个组件   资料库名称必须至少包含一个小写字母数字   字符,可选用句点,破折号或下划线分隔。   更严格地说,它必须匹配正则表达式   [a-z0-9] +(?:[._-] [a-z0-9] +)*。如果存储库名称包含两个或多个   路径组成部分,必须用正斜杠(“ /”)分隔。的   存储库名称的总长度(包括斜杠)必须小于   超过256个字符。

请确保您使用的是Docker Registry HTTP API V2,并遵守上述所有规则。

尽管V1注册表协议可用,但是体系结构中存在一些导致V2的问题。

此外,您可以尝试使用Docker Tag

  

创建引用SOURCE_IMAGE的标记TARGET_IMAGE

上面有例子的更多信息。

请告诉我是否有帮助。