带有 Kubernetes Jenkins 插件的自定义代理映像



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

这是改变它的正确地方吗? 这是一个错误吗?

当我在 Jenkinsfile 中根据名为"jnlp"的图像手动添加容器时,它按预期工作。 当我尝试通过 GUI 更改内容时,它仅使用默认图像。

我还尝试使用正确的设置添加新的云条目,但该条目也没有任何作用。

经过大量研究,我发现了根本原因。 我添加这个是为了帮助任何未来的搜索者。

问题是,如果您使用 YAML 定义容器,则插件不会使用您的 pod 模板。 如果没有名为"jnlp"的容器,它会使用库存图像静默注入一个容器。 在 GUI 配置的容器模板中放入什么并不重要。

如果使用 yaml 定义 pod,并且需要自定义 jnlp 映像,则还必须在规范中包含该容器定义,并且必须将其命名为"jnlp"。

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

最新更新