第 31 章 配置全局构建默认值和覆盖
31.1. 概述
开发人员可以在其项目内的特定构建配置中定义设置,例如 为 Git 克隆配置代理。除了要求开发人员定义每个构建配置中的某些设置外,管理员可以使用准入插件来配置全局构建默认值,并覆盖在任何构建中自动使用这些设置。
这些插件中的设置仅在构建过程中使用,但不在构建配置或构建本身中设置。通过插件配置设置后,管理员可以随时更改全局配置,并且从现有构建配置或构建中重新运行的任何构建都会分配新设置。
-
借助
BuildDefaults
准入插件,管理员可以为 Git HTTP 和 HTTPS 代理等设置设置全局默认值,以及默认的环境变量。这些默认值不会覆盖为特定构建配置的值。但是,如果构建定义中没有这些值,则它们会设置为默认值。 BuildOverrides
准入插件允许管理员覆盖构建中的设置,而不考虑构建中存储的值。插件目前支持覆盖构建策略上的
forcePull
标志,以便在构建期间从 registry 中强制刷新本地镜像。这意味着,每次构建启动时都会对镜像执行访问检查,确保用户只能使用允许拉取的镜像来构建。强制刷新为您的构建提供多租户。但是,您无法依赖构建节点上存储的镜像的本地缓存,您必须始终能够访问 registry。该插件也可以配置为将一组镜像标签应用到每个构建的镜像。
有关配置
BuildOverrides
准入插件和您可以覆盖的值的详情,请参阅 手动设置全局 Build Overrides。
默认节点选择器和 BuildDefaults
或 BuildOverrides
准入插件可以正常工作,如下所示:
-
master 配置文件的
projectConfig.defaultNodeSelector
字段中定义的默认项目节点选择器应用到在没有指定nodeSelector
值的情况下在所有项目中创建的 pod。这些设置应用于在未设置BuildDefaults
或BuildOverrides
nodeselector 的集群上使用nodeSelector="null"
的构建。 -
只有在构建配置中设置了 nodeSelector="null" 参数,才会应用集群范围的默认选择器
admissionConfig.pluginConfig.BuildDefaults.configuration.nodeSelector
。才会在构建配置中设置nodeSelector="null
" 使用默认项目或集群范围节点选择器时,默认设置会作为构建节点选择器的 AND 添加到构建节点选择器中,由
BuildDefaults
或BuildOverrides
准入插件设置。这些设置表示构建将仅调度到满足BuildOverrides
节点选择器和项目默认节点选择器的节点。注意您可以使用 RunOnceDuration 插件 来定义有关构建 pod 可运行的硬限制。