触发器默认 ServiceAccount

在 Kubernetes 上,在新的 EventListener 中省略 spec.serviceAccountName 或将其设置为空字符串 会选择 triggers-default-sa。增强 RBAC controller 会在符合条件的命名空间中配置此账户。在 OpenShift 上, 现有的平台默认值仍为 pipeline。

覆盖或恢复默认值

请配置现有的 TektonConfig 字段,而不要直接编辑受管理的 config-defaults-triggers ConfigMap:

apiVersion: operator.tekton.dev/v1alpha1
kind: TektonConfig
metadata:
  name: config
spec:
  trigger:
    default-service-account: custom-trigger-sa

operator 会将生效值传播到 config-defaults-triggers,Triggers 和增强 RBAC controller 都会读取该值。包括 default 在内的显式非空值 会得到保留。同一 ConfigMap 的其他选项仍会优先于此字段,包括显式的空选项 值。恢复平台默认值时,也要移除该覆盖设置。

移除 spec.trigger.default-service-account 或将其设置为空字符串, 即可恢复平台默认值。在 Kubernetes 上,生效的 ConfigMap 键仍会保留, 其值为 triggers-default-sa;删除该键并不代表重置成功。

升级兼容性

  • 现有 EventListener 会保留其已存储的非空 ServiceAccount 名称。 operator 不会迁移当前使用 default 的所有 listener。
  • 对于确认由旧的隐式 default 账户导致的 listener 故障, 请先检查其预期权限,再显式更改其账户。
  • 如果需要使用旧默认值,请显式设置 spec.trigger.default-service-account: default,并确保该账户具有 必要的权限。当自动 RBAC 配置被禁用或命名空间被排除时,此设置本身不会授予权限。
  • 升级前,请检查仅在 ConfigMap 中进行的自定义设置,并在 TektonConfig 或其其他选项中表达有意设置的值。 不要自动采用无法解释的旧值:它们可能是过时的配置。
  • 当自动 RBAC 配置被禁用,或在被排除的命名空间中时, 请显式选择具有所需权限的现有账户。
  • EventListener 账户默认设置不会改变 PipelineRun 或 TaskRun 的账户选择。

配置撤回

撤回时,会从已安装的 ConfigMap 中移除 spec.trigger.options.configMaps 中的覆盖设置,包括首次安装时存在的覆盖设置。对于 config-defaults-triggers 这样的打包 ConfigMap,移除 options 数据、将空的 ConfigMap options 条目保留为空,或移除该条目,都会恢复当前声明的设置。显式设置为空的选项值在移除之前仍会作为覆盖设置保留。对于仅通过 options 创建的附加 ConfigMap,请保留其条目,并撤回单个数据键,以移除由其管理的值。移除该附加对象的整个条目会保留现有的 InstallerSet 资源生命周期行为;这并不保证删除先前安装的 ConfigMap 或其中的数据。

对于较早的安装,operator 会使用之前的 InstallerSet 声明来识别受管理的数据键。管理员直接添加的其他键会予以保留。如果旧版本已经同时丢失了之前的声明及其应用历史记录,则无法自动识别仅存在于 ConfigMap 中、且无法解释的值是否为已撤回的覆盖设置。请根据预期配置检查此类值,并仅移除已确认过时的条目。