我正在使用jenkins-helm图表配置我的Jenkins示例(https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/VALUES_SUMMARY.md#jenkins-configuration-as-code-jcasc)
目前Jenkins配置以values.yaml形式提供,如下所示:
jenkins:
controller:
JCasC:
configScripts:
key1:|-
<a-very-big-yaml-value>
有没有办法从单独的yaml文件导入这个'big-yaml-value',因为它将为我们增强代码的可维护性。
4条答案
按热度按时间a5g8bdjr1#
由于我不使用helm-charts,所以我不能权威地回答,但它在抽象上是受支持的。根据JCasC入门文档:
首先,启动一个Jenkins示例,并安装Configuration as Code插件。
其次,插件查找
CASC_JENKINS_CONFIG
环境变量,该变量指向以下任意一个逗号分隔的列表:*包含一组配置文件的文件夹路径。例如,
/var/jenkins_home/init.CasC
。/var/jenkins_home/init.CasC/jenkins.yaml
。https://acme.org/jenkins.yaml
。如果
CASC_JENKINS_CONFIG
的一个元素指向一个文件夹,插件将递归遍历文件夹以查找后缀为.yml,.yaml,.YAML,.YML
的文件。它将排除隐藏文件或在完整路径的任何部分包含隐藏文件夹的文件。它将遵循文件和目录的符号链接。所以,是的,你可以有多个
yml
文件。我有超过20个(120插件)。他们被分解的能力(例如:全局、代理、工具、凭证,包括2个用于RBAC(1个用于角色、用户等)),以及一些插件特定的yml
文件。一些文件还可跨示例重用,而其他文件则是特定的。发生冲突时,您应了解合并策略:
*冲突时出错合并策略(默认)
*覆盖合并策略
还要注意,当更新一个现有示例时,某些插件配置可能会替换配置,而其他插件配置可能会增加现有配置,无论是一个还是多个yaml。当然,还不是100%的选项都支持JCasC,所以还需要一些init.groovy. YMMV。
您还可能希望审查:JCasC Handling Secrets .
kcrjzv8t2#
下面的设置为我工作。将把相关部分。
舵形图的目录布局:
在
values.yaml
中,我们覆盖了CASC_JENKINS_CONFIG,以便它在默认路径之上考虑配置文件的附加路径。加载
conf/
文件夹中所有文件的ConfigMapjenkins-custom-casc-config.yaml
ztmd8pv53#
我得到它的工作时,做子文件夹到
/var/jenkins_home/casc_configs
,我注入所有配置文件。否则hirosereal的答案工作。pprl5pva4#
我是按照 HiroCereal,但它一直显示在UI中
并且文件夹casc_configs什么都没有。我错过了什么?我正在使用helm图表。