使用Kubernetes Jenkins插件的自定义代理映像

时间:2019-09-09 22:34:50

标签: jenkins-plugins

我一直在使用csanchez的kubernetes-jenkins插件来运行我的奴隶。一切正常,但是现在我需要一个自定义代理映像。我已经将插件的设置从默认代理映像更改为我的插件(在Container Template-> Docker映像中),但是当我检查k8s中的日志时,我可以看到它仍在使用默认代理。

这是更改它的正确位置吗?这是错误吗?

当我在Jenkinsfile中基于名为“ jnlp”的图像手动添加容器时,它可以正常工作。当我尝试通过GUI进行更改时,它仅使用默认图像。

我还尝试添加具有正确设置的新云条目,但是该条目也无济于事。

1 个答案:

答案 0 :(得分:0)

经过大量研究,我找到了根本原因。我正在添加此标签以帮助将来的搜索者。

问题在于,如果您使用YAML定义容器,则该插件将不会使用您的pod模板。如果您没有名为“ jnlp”的容器,它将使用库存图像以静默方式注入一个容器。放在GUI配置中的容器模板中的内容无关紧要。

如果您使用yaml定义了pod,并且想要一个自定义的jnlp图片,那么您还必须在规范中包含该容器定义,并且该容器定义必须命名为“ jnlp”。

作为替代方案,您可以仅使用管道语法而不使用yaml。在这种情况下,它将从模板继承。请注意,这仅在特定情况下有效:
a)您可以使用脚本化管道。我还没有测试过,但是根据我的研究,它可以不受限制地工作。
b)您可以使用声明性管道,但前提是您只有一个容器(不计算jnlp)。如果要对多个容器使用声明性管道,则必须使用yaml。