Skip to main content
Version: v0.9.x

ObservabilityAlertsNotificationChannel

An ObservabilityAlertsNotificationChannel defines a destination for alert notifications. These resources are environment-bound, meaning each channel is associated with a specific OpenChoreo environment.

Default Notification Channel

In each environment, one ObservabilityAlertsNotificationChannel can be marked as the default. If an ObservabilityAlertRule is created without explicitly specifying a notificationChannel, it will automatically use the default channel for that environment.

Currently, only email notifications are supported, but other types such as Slack or Webhooks will be added in the future.

API Version​

openchoreo.dev/v1alpha1

Resource Definition​

Metadata​

ObservabilityAlertsNotificationChannel resources are namespace-scoped.

apiVersion: openchoreo.dev/v1alpha1
kind: ObservabilityAlertsNotificationChannel
metadata:
name: <channel-name>
namespace: <org-namespace>

Spec Fields​

FieldTypeRequiredDescription
environmentstringYesName of the OpenChoreo environment this channel belongs to (Immutable)
isEnvDefaultbooleanNoIf true, this is the default channel for the environment. Default channels are used by alert rules that don't specify a channel. Defaults to false. First channel created in an environment will be marked as the default
typeNotificationChannelTypeYesThe type of notification channel (currently only email)
configNotificationChannelConfigYesChannel-specific configuration

NotificationChannelType​

ValueDescription
emailEmail notification channel

Other notification channel types (e.g., Slack, Webhooks) will be added in the future.

NotificationChannelConfig​

For type: email, the configuration includes the following fields:

FieldTypeRequiredDescription
fromstringYesThe sender email address
tostring[]YesList of recipient email addresses (minimum 1)
smtpSMTPConfigYesSMTP server configuration
templateEmailTemplateNoEmail subject and body templates using CEL expressions

SMTPConfig​

FieldTypeRequiredDescription
hoststringYesSMTP server hostname
portintegerYesSMTP server port
authSMTPAuthNoSMTP authentication credentials
tlsSMTPTLSConfigNoTLS configuration for SMTP

SMTPAuth​

FieldTypeRequiredDescription
usernameSecretValueFromNoUsername for SMTP authentication (inline or secret ref)
passwordSecretValueFromNoPassword for SMTP authentication (inline or secret ref)

SMTPTLSConfig​

FieldTypeRequiredDescription
insecureSkipVerifybooleanNoIf true, skips TLS certificate verification (not recommended for production)

EmailTemplate​

Defines the email template using CEL expressions.

FieldTypeRequiredDescription
subjectstringYesCEL expression for the email subject (e.g., "[${alert.severity}] - ${alert.name} Triggered")
bodystringYesCEL expression for the email body

SecretValueFrom​

Defines how to obtain a secret value.

FieldTypeRequiredDescription
secretKeyRefSecretKeyRefNoReference to a key in a Kubernetes secret

SecretKeyRef​

FieldTypeRequiredDescription
namestringYesName of the secret
namespacestringYesNamespace of the secret
keystringYesKey within the secret

Examples​

Email Notification Channel​

apiVersion: openchoreo.dev/v1alpha1
kind: ObservabilityAlertsNotificationChannel
metadata:
name: prod-email-notifications
namespace: my-org
spec:
environment: production
isEnvDefault: true
type: email
config:
from: "alerts@example.com"
to:
- "admin@example.com"
- "devops@example.com"
smtp:
host: "smtp.example.com"
port: 587
auth:
username:
secretKeyRef:
name: smtp-credentials
key: username
password:
secretKeyRef:
name: smtp-credentials
key: password
template:
subject: "[OpenChoreo] ${alert.severity}: ${alert.name}"
body: "Alert ${alert.name} triggered at ${alert.startsAt}.\n\nDescription: ${alert.description}"