2.4. NotificationsConfiguration 自定义资源属性
NotificationsConfiguration
资源是一个 Kubernetes 自定义资源(CR),用于管理 Kubernetes 集群中的通知。在 Red Hat OpenShift GitOps 中,您可以使用
CR 将模板、触发器、服务和订阅资源添加到 Argo CD 通知配置映射中。
Notifications
Configuration
当您在启用了通知的 Red Hat OpenShift GitOps 中创建集群时,默认会创建一个带有名称 default-notifications-configuration
的 NotificationsConfiguration
CR。
在 NotificationsConfiguration
CR 的现有配置中所做的任何更改都会在 Argo CD 通知
配置映射中复制。例如,如果用户在 NotificationsConfiguration
资源中添加触发器配置,则此配置会在 Argo CD Notifications
配置映射中读取、处理和更新。
任何配置更改都必须在 default-notifications-configuration
CR 中更新。不支持为 NotificationsConfiguration
资源用户创建的自定义资源。
对 Argo CD argocd-notifications-cm
配置映射的任何修改都会被 NotificationsConfiguration
CR 中所做的更改覆盖。
Properties | default | 描述 |
---|---|---|
模板 |
| 模板用于生成通知模板消息。 |
触发器 |
| 触发器用于定义在向用户以及生成消息所需的模板列表通知时的条件。 |
服务 |
| 服务用于发送消息。 |
订阅 |
| 订阅包含集中管理的全局应用程序订阅。 |
以下示例定义如何使用 default-notifications-configuration
自定义资源将模板、触发器、服务和订阅资源添加到 Argo CD argocd-notification-cm
配置映射。
模板示例
apiVersion: argoproj.io/v1alpha1 kind: NotificationsConfiguration metadata: name: default-notifications-configuration 1 spec: templates: template.my-custom-template: | 2 message: | Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
触发器示例
apiVersion: argoproj.io/v1alpha1 kind: NotificationsConfiguration metadata: name: default-notifications-configuration 1 spec: triggers: trigger.on-sync-status-unknown: | 2 - when: app.status.sync.status == 'Unknown' send: [my-custom-template]
服务
示例
apiVersion: argoproj.io/v1alpha1 kind: NotificationsConfiguration metadata: name: default-notifications-configuration 1 spec: services: service.slack: | token: $slack-token 2 username: <override-username> # optional username icon: <override-icon> # optional icon for the message (supports both emoji and url notation)
订阅示例
apiVersion: argoproj.io/v1alpha1 kind: NotificationsConfiguration metadata: name: default-notifications-configuration 1 spec: subscriptions: | subscriptions: | 2 # subscription for on-sync-status-unknown trigger notifications - recipients: - slack:test2 - email:test@gmail.com triggers: - on-sync-status-unknown # subscription restricted to applications with matching labels only - recipients: - slack:test3 selector: test=true triggers: - on-sync-status-unknown icon: <override-icon> # optional icon for the message (supports both emoji and url notation)
您可以使用 OpenShift Container Platform Web 控制台或 CLI (oc
)配置 NotificationsConfiguration
CR。
2.4.1. 使用 Web 控制台配置 NotificationsConfiguration CR
您可以使用 Web 控制台配置 NotificationsConfiguration
自定义资源(CR)。
先决条件
-
您可以使用
cluster-admin
权限访问 OpenShift Container Platform 集群,并登录到 web 控制台。 - 在集群中安装了 Red Hat OpenShift GitOps Operator。
- 您已为 Argo CD 实例启用了通知。如需更多信息,请参阅"使用 Argo CD 实例启用通知"。
流程
-
在 OpenShift Container Platform Web 控制台的 Administrator 视角中,展开 Operators
Installed Operators。 - 从 Installed Operators 列表中,选择 Red Hat OpenShift GitOps Operator,然后点 NotificationsConfiguration 选项卡。
-
在 NotificationsConfigurations 页面中,单击
default-notifications-configuration
。 在 default-notifications-configuration 页面中,单击 YAML 并添加任何受支持的资源的配置,如
模板
、触发器
、服务
和订阅
。例如,在代码中的模板
下,添加以下示例配置:模板配置示例
template.my-custom-template: | message: | Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
- 点击 Save。
验证
NotificationsConfiguration
CR 中进行的配置更改是否已反映在argocd-notifications-cm
配置映射中:-
进入 Workloads
ConfigMaps。 - 点 argocd-notifications-cm 并选择 YAML 选项卡。
- 滚动浏览 YAML 选项卡中的页面,以验证为支持的资源添加的示例配置。
-
进入 Workloads
2.4.2. 使用 CLI 配置 NotificationsConfiguration CR
您可以使用 CLI (oc
)配置 NotificationsConfiguration
自定义资源(CR)。
先决条件
-
您可以使用
cluster-admin
权限访问 OpenShift Container Platform 集群。 - 在集群中安装了 Red Hat OpenShift GitOps Operator。
- 您已为 Argo CD 实例启用了通知。如需更多信息,请参阅"使用 Argo CD 实例启用通知"。
流程
运行以下命令来编辑集群中的默认
NotificationsConfiguration
CR:$ oc edit notificationsconfiguration default-notifications-configuration -n <namespace>
其中:
default-notifications-configuration
-
指定默认
NotificationsConfiguration
CR 的名称。 <namespace>
- 指定命名空间的名称。
在 CR 的
templates
部分,添加类似以下示例的配置:模板配置示例
template.my-custom-template: | message: | Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
运行以下命令,验证
argocd-notifications-cm
配置映射的内容:$ oc edit cm argocd-notifications-cm -n <namespace>
NotificationsConfiguration
CR 的现有配置中所做的更改反映在argocd-notifications-cm
配置映射中。