我的Jenkins控制器上有不同类型的代理。静态代理(一些虚拟机和一些裸机服务器)和动态代理(几个Kubernetes云示例)。静态代理根据操作系统(Windows,Linux)进行标记,动态(Kubernetes)可以基于项目在不同的Docker映像上运行。没有这些标签,因为它们可以根据操作系统和Docker映像进行更改。
我如何编写一个Jenkins管道,在运行时动态选择代理?
我可以在触发构建时提供4个env参数。AGENT_TYPE
的可能值是["static", "dynamic"]
,AGENT_OS
的可能值是["linux", "windows"]
,AGENT_IMAGE
是字符串值,docker镜像的链接和AGENT_CLOUD
,其云名称为Kubernetes。
如果env参数表示使用静态代理,则构建将在使用OS作为标签的那些代理上开始,如果选择了Kubernetes,则将使用其他参数来收集Kubernetes配置。
我正在努力编写一个管道,在Jenkins管道的agent
部分中选择label
和kubernetes
。任何帮助都很感激。谢谢
1条答案
按热度按时间lvmkulzt1#
首先,你可以使用这样的东西:
您还可以使用Jenkin的worker标记,并为几个代理提供相同的标记,然后在同一个代理标记下有一组代理,这对于扩展负载非常有用