我正在使用Jenkins图表(SUMMARY.md#jenkins-configuration-as-code-jcasc)配置jenkins实例。
目前,Jenkins配置在values.yaml中提供,如下所示:
jenkins:
controller:
JCasC:
configScripts:
key1:|-
<a-very-big-yaml-value>是否有方法从单独的yaml文件中导入这个“大-yaml-值”,因为它将增强代码的可维护性。
发布于 2022-02-04 08:44:56
由于我不使用舵图,所以我不能权威地回答,但它在摘要中得到了支持。根据JCasC入门文档:
首先,以安装代码插件的方式启动配置的Jenkins实例。
其次,插件查找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个插件)。它们按功能(例如:全局、代理、工具、凭据,包括RBAC的2份(角色1份,用户的1份)以及一些插件特定的yml文件等进行细分。有些还可以跨实例重用,而另一些则是特定的。
在发生冲突时,您应该知道合并策略:
另外,在更新现有实例时,某些插件配置可能会取代配置,而其他插件配置可能会增加现有配置,而不考虑一个yaml或多个配置。当然,还没有100%的选项是可选的,所以也需要一些init.groovy。YMMV
您还可以回顾一下: JCasC 处理秘密。
发布于 2022-05-10 12:14:42
下面的设置对我有效。会把相关的部分。
舵图的目录布局:
jenkins/
├── conf/
│ ├── shared-library.yaml
│ └── big-yaml.yaml
├── templates/
│ └── jenkins-custom-casc-config.yaml
├── values.yaml
└── Chart.yaml在values.yaml中,我们重写CASC_JENKINS_CONFIG,以便它在默认配置文件之上考虑配置文件的附加路径。
controller:
containerEnv:
- name: CASC_JENKINS_CONFIG
value: "/var/jenkins_home/casc_configs,/var/jenkins_home/custom-casc_configs"
persistence:
volumes:
- name: jenkins-custom-casc-config
configMap:
name: jenkins-custom-casc-config
mounts:
- mountPath: /var/jenkins_home/custom-casc_configs
name: jenkins-custom-casc-config加载显示在ConfigMap文件夹中的所有文件的jenkins-custom-casc-config.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: jenkins-custom-casc-config
data:
{{- (.Files.Glob "conf/*").AsConfig | nindent 2 }}发布于 2022-08-16 10:11:59
在对/var/jenkins_home/casc_configs执行子文件夹时,我将所有配置文件都注入其中。否则,广谷物的答案就会奏效。
https://stackoverflow.com/questions/70976546
复制相似问题