2.4. NotificationsConfiguration 自定义资源属性


NotificationsConfiguration 资源是一个 Kubernetes 自定义资源(CR),用于管理 Kubernetes 集群中的通知。在 Red Hat OpenShift GitOps 中,您可以使用 Notifications Configuration CR 将模板、触发器、服务和订阅资源添加到 Argo CD 通知配置映射中。

当您在启用了通知的 Red Hat OpenShift GitOps 中创建集群时,默认会创建一个带有名称 default-notifications-configurationNotificationsConfiguration CR。

NotificationsConfiguration CR 的现有配置中所做的任何更改都会在 Argo CD 通知 配置映射中复制。例如,如果用户在 NotificationsConfiguration 资源中添加触发器配置,则此配置会在 Argo CD Notifications 配置映射中读取、处理和更新。

重要

任何配置更改都必须在 default-notifications-configuration CR 中更新。不支持为 NotificationsConfiguration 资源用户创建的自定义资源。

对 Argo CD argocd-notifications-cm 配置映射的任何修改都会被 NotificationsConfiguration CR 中所做的更改覆盖。

表 2.1. NotificationsConfiguration 自定义资源属性
Propertiesdefault描述

模板

<empty>

模板用于生成通知模板消息。

触发器

<empty>

触发器用于定义在向用户以及生成消息所需的模板列表通知时的条件。

服务

<empty>

服务用于发送消息。

订阅

<empty>

订阅包含集中管理的全局应用程序订阅。

以下示例定义如何使用 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}}.

1
集群中的 NotificationsConfiguration CR 的默认名称。
2
NotificationsConfiguration CR 的自定义模板配置示例。

触发器示例

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]

1
集群中的 NotificationsConfiguration CR 的默认名称。
2
NotificationsConfiguration CR 的自定义触发器配置示例。

服务示例

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)

1
集群中的 NotificationsConfiguration CR 的默认名称。
2
NotificationsConfiguration CR 的自定义服务配置示例。

订阅示例

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)

1
集群中的 NotificationsConfiguration CR 的默认名称。
2
NotificationsConfiguration CR 的自定义订阅配置示例。

您可以使用 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 实例启用通知"。

流程

  1. 在 OpenShift Container Platform Web 控制台的 Administrator 视角中,展开 Operators Installed Operators
  2. Installed Operators 列表中,选择 Red Hat OpenShift GitOps Operator,然后点 NotificationsConfiguration 选项卡。
  3. NotificationsConfigurations 页面中,单击 default-notifications-configuration
  4. default-notifications-configuration 页面中,单击 YAML 并添加任何受支持的资源的配置,如 模板触发器服务 和订阅。例如,在代码中的模板 下,添加以下示例配置:

    模板配置示例

      template.my-custom-template: |
        message: |
        Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

  5. 点击 Save
  6. 验证 NotificationsConfiguration CR 中进行的配置更改是否已反映在 argocd-notifications-cm 配置映射中:

    1. 进入 Workloads ConfigMaps
    2. argocd-notifications-cm 并选择 YAML 选项卡。
    3. 滚动浏览 YAML 选项卡中的页面,以验证为支持的资源添加的示例配置。

2.4.2. 使用 CLI 配置 NotificationsConfiguration CR

您可以使用 CLI (oc)配置 NotificationsConfiguration 自定义资源(CR)。

先决条件

  • 您可以使用 cluster-admin 权限访问 OpenShift Container Platform 集群。
  • 在集群中安装了 Red Hat OpenShift GitOps Operator。
  • 您已为 Argo CD 实例启用了通知。如需更多信息,请参阅"使用 Argo CD 实例启用通知"。

流程

  1. 运行以下命令来编辑集群中的默认 NotificationsConfiguration CR:

    $ oc edit notificationsconfiguration default-notifications-configuration -n <namespace>

    其中:

    default-notifications-configuration
    指定默认 NotificationsConfiguration CR 的名称。
    <namespace>
    指定命名空间的名称。
  2. 在 CR 的 templates 部分,添加类似以下示例的配置:

    模板配置示例

      template.my-custom-template: |
        message: |
        Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.

  3. 运行以下命令,验证 argocd-notifications-cm 配置映射的内容:

    $ oc edit cm argocd-notifications-cm -n <namespace>

    NotificationsConfiguration CR 的现有配置中所做的更改反映在 argocd-notifications-cm 配置映射中。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.