### Helm Install with Secret Reference Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example command for `helm install` referencing a Kubernetes secret for the Dash0 authorization token. ```bash helm install \ --wait \ --namespace dash0-system \ --set operator.dash0Export.enabled=true \ --set operator.dash0Export.endpoint=REPLACE THIS WITH YOUR DASH0 INGRESS ENDPOINT \ --set operator.dash0Export.apiEndpoint=REPLACE THIS WITH YOUR DASH0 API ENDPOINT \ --set operator.dash0Export.secretRef.name=dash0-authorization-secret \ --set operator.dash0Export.secretRef.key=token \ dash0-operator \ dash0-operator/dash0-operator ``` -------------------------------- ### HostPath Volume Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example configuration for using a hostPath volume to store filelog receiver offsets. ```yaml operator: collectors: filelogOffsetSyncStorageVolume: name: filelogreceiver-offsets hostPath: path: /data/dash0-operator/offset-storage type: DirectoryOrCreate ``` -------------------------------- ### Install Husky Hooks Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Install the pre-push git hooks via `make husky-setup-hooks` to run build, lint, and test checks before every `git push`. ```bash make husky-setup-hooks ``` -------------------------------- ### Installing Basic Infrastructure for End-to-End Tests Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Commands to manually install ingress-nginx, metrics-server, and cert-manager to speed up the e2e test suite. ```bash test-resources/bin/deploy-ingress-nginx.sh helm repo add metrics-server https://kubernetes-sigs.github.io/metrics-server/ && helm upgrade --install --set args={--kubelet-insecure-tls} metrics-server metrics-server/metrics-server --namespace kube-system test-resources/cert-manager/deploy.sh ``` -------------------------------- ### Signal-to-Metrics Synchronization Status Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example status output for a synchronized signal-to-metrics resource. ```yaml Kind: Dash0SignalToMetrics ... Status: Synchronization Status: successful Synchronized At: 2026-05-16T12:00:00Z ``` -------------------------------- ### Example Spam Filter Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md This example demonstrates how to create a spam filter that drops all log records from the 'kube-system' namespace. ```yaml apiVersion: operator.dash0.com/v1alpha1 kind: Dash0SpamFilter metadata: name: drop-health-checks spec: contexts: - log filter: - key: "k8s.namespace.name" operator: "is" value: "kube-system" ``` -------------------------------- ### PersistentVolumeClaim Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example configuration for using a PersistentVolumeClaim to store filelog receiver offsets. ```yaml operator: collectors: filelogOffsetSyncStorageVolume: name: filelogreceiver-offsets persistentVolumeClaim: claimName: offset-storage-claim ``` -------------------------------- ### Quickstart for Docker Desktop with kubeadm Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Command to run end-to-end tests on Docker Desktop with its integrated Kubernetes support. ```bash E2E_KUBECTX=docker-desktop \ IMAGE_REPOSITORY_PREFIX="" \ PULL_POLICY="Never" \ INGRESS_PORT=80 \ make build-all-test-e2e ``` -------------------------------- ### Dash0 Operator Configuration Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example YAML configuration for connecting the Dash0 Operator to the Dash0 backend. ```yaml apiVersion: operator.dash0.com/v1alpha1 kind: Dash0OperatorConfiguration metadata: name: dash0-operator-configuration spec: exports: - dash0: # Replace this value with the actual OTLP/gRPC endpoint of your Dash0 organization. endpoint: ingress... # TODO needs to be replaced with the actual value, see below authorization: # Provide the Dash0 authorization token as a string via the token property: token: auth_... # TODO needs to be replaced with the actual value, see below apiEndpoint: https://api.....dash0.com # TODO needs to be replaced with the actual value, see below clusterName: my-kubernetes-cluster # optional, see below ``` -------------------------------- ### Quickstart for Docker Desktop with kubeadm Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md This command deploys the operator and a test scenario using Docker Desktop and kubeadm. ```bash IMAGE_REPOSITORY_PREFIX="" \ PULL_POLICY="Never" \ test-resources/bin/test-scenario-02-operator-cr-aum.sh ``` -------------------------------- ### Dash0 Dataset Configuration Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example YAML for configuring a custom Dash0 dataset for telemetry data. ```yaml apiVersion: operator.dash0.com/v1alpha1 kind: Dash0OperatorConfiguration metadata: name: dash0-operator-configuration spec: exports: - dash0: endpoint: ingress... # see above dataset: my-custom-dataset # This optional setting determines the Dash0 dataset to which telemetry will be sent. authorization: # see above ... apiEndpoint: https://api... # optional, see above ``` -------------------------------- ### Quickstart for Kind with a local container registry Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Command to run end-to-end tests on a kind cluster with a local registry. ```bash E2E_KUBECTX=kind-dash0-operator-lab \ IMAGE_REPOSITORY_PREFIX="localhost:5001/" \ make build-all-push-all-test-e2e ``` -------------------------------- ### Dash0 Monitoring Resource Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example YAML definition for a Dash0Monitoring resource. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0Monitoring metadata: name: dash0-monitoring-resource ``` -------------------------------- ### Dash0 Monitoring Resource Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md A comprehensive example of a Dash0Monitoring resource, demonstrating various configuration options including instrumentation mode, Prometheus scraping, filtering, transformations, and synchronization settings. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0Monitoring metadata: name: dash0-monitoring-resource spec: instrumentWorkloads: created-and-updated prometheusScraping: enabled: false filter: traces: span: - 'attributes["http.route"] == "/ready"' - 'attributes["http.route"] == "/metrics"' spanevent: - 'attributes["grpc"] == true' - 'IsMatch(name, ".*grpc.*")' metrics: metric: - 'name == "k8s.replicaset.available"' - 'name == "k8s.replicaset.desired"' datapoint: - 'metric.type == METRIC_DATA_TYPE_SUMMARY' - 'resource.attributes["service.name"] == "my_service_name"' logs: log_records: - 'IsMatch(body, ".*password.*")' - 'severity_number < SEVERITY_NUMBER_WARN' profiles: profile: - 'resource.attributes["k8s.pod.name"] == "debug-pod"' transform: ``` -------------------------------- ### Slack Webhook Notification Channel Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of a Dash0NotificationChannel resource configured for Slack. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0NotificationChannel metadata: name: slack-alerts spec: display: name: Slack Alerts type: slack slackConfig: webhookURL: "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX" channel: "#alerts" ``` -------------------------------- ### Notification Channel Status Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of the status field for a synchronized notification channel resource. ```yaml Kind: Dash0NotificationChannel ... Status: Synchronization Status: successful Synchronized At: 2025-09-05T11:47:56Z ``` -------------------------------- ### Example Dash0Monitoring Status Output Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example status output for a Dash0Monitoring resource showing Perses dashboard synchronization results. ```yaml Kind: Dash0Monitoring ... Status: Perses Dashboard Synchronization Results: my-namespace/perses-dashboard-test: Synchronization Status: successful Synchronized At: 2024-10-25T12:02:12Z ``` -------------------------------- ### Running a Semi-Manual Test Scenario Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Example command to run a specific test scenario with a target namespace and workload type. ```bash test-resources/bin/test-scenario-01-aum-operator-cr.sh another-namespace replicaset jvm ``` -------------------------------- ### Example PersistentVolumeClaim Source: https://github.com/dash0hq/dash0-operator/blob/main/images/filelogoffsetvolumeownership/README.md An example of a PersistentVolumeClaim that might not grant the necessary write permissions to the OpenTelemetry collector user. ```yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: offset-storage-claim namespace: operator-namespace spec: accessModes: - ReadWriteOnce resources: requests: storage: 300Mi storageClassName: standard-rwo ``` -------------------------------- ### Prometheus Rule Synchronization Status Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md An example of the status field in a Dash0Monitoring resource showing the results of synchronizing Prometheus rules. ```yaml Kind: Dash0Monitoring ... Status: Prometheus Rule Synchronization Results: my-namespace/prometheus-example-rules: Synchronization Status: successful Synchronized At: 2026-04-30T07:12:41Z Alerting Rules Total: 3 Recording Rules Total: 1 Invalid Rules Total: 0 Synchronization Results: dash0ApiEndpoint: https://api.$region.dash0.com/ dash0Dataset: default Synchronization Errors Total: 0 Synchronized Rules Attributes: dash0/collector - exporter send failed spans: dash0Origin: dash0-operator_e70c4b03-7e8d-432d-b2cd-addff593076e_default_namespace_prometheus-example-rules_dash0|collector_exporter send failed spans dash0/k8s - K8s Deployment replicas mismatch: dash0Origin: dash0-operator_e70c4b03-7e8d-432d-b2cd-addff593076e_default_namespace_prometheus-example-rules_dash0|k8s_K8s Deployment replicas mismatch dash0/k8s - K8s pod crash looping: dash0Origin: dash0-operator_e70c4b03-7e8d-432d-b2cd-addff593076e_default_namespace_prometheus-example-rules_dash0|k8s_K8s pod crash looping dash0/k8s - job:http_requests:rate5m: dash0Origin: dash0-operator_e70c4b03-7e8d-432d-b2cd-addff593076e_default_namespace_prometheus-example-rules_dash0|k8s_job|http_requests|rate5m Synchronized Rules Total: 4 ``` -------------------------------- ### Spam Filter Synchronization Status Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md An example showing the status fields that indicate the result of a spam filter synchronization operation. ```yaml Kind: Dash0SpamFilter ... Status: Synchronization Status: successful Synchronized At: 2026-05-01T12:00:00Z ``` -------------------------------- ### Incident.io Notification Channel Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of creating an Incident.io notification channel. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0NotificationChannel metadata: name: incidentio-alerts spec: display: name: Incident.io Alerts type: incidentio incidentioConfig: url: "https://api.incident.io/v2/alert_events/http/my-source" headers: "Bearer my-api-token" ``` -------------------------------- ### Manual OTEL_EXPORTER_OTLP_ENDPOINT Configuration Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of how to manually set OTEL_EXPORTER_OTLP_ENDPOINT to use the gRPC port for workloads that do not support http/protobuf. ```yaml - name: MY_NODE_IP valueFrom: fieldRef: fieldPath: status.hostIP - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://$(MY_NODE_IP):40317 ``` -------------------------------- ### gRPC Export Configuration Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example configuration for exporting telemetry data via gRPC to an OTLP-compatible backend. ```yaml apiVersion: operator.dash0.com/v1alpha1 kind: Dash0OperatorConfiguration metadata: name: dash0-operator-configuration spec: exports: - grpc: endpoint: ... # provide the OTLP gRPC endpoint of your observability backend here headers: # you can optionally provide additional headers, for example for authorization - name: X-My-Header value: my-value ``` -------------------------------- ### Install Dash0 Operator Without Initial Backend Configuration Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Helm command to install the operator without immediate Dash0 backend configuration, requiring manual setup later. ```bash helm install \ --wait \ --namespace dash0-system \ --create-namespace \ dash0-operator \ dash0-operator/dash0-operator ``` -------------------------------- ### Quickstart for Kind with a local container registry Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md This command deploys the operator and a test scenario using Kind and a local container registry. ```bash IMAGE_REPOSITORY_PREFIX="localhost:5001/" \ PUSH_BUILT_IMAGES=true \ test-resources/bin/test-scenario-02-operator-cr-aum.sh ``` -------------------------------- ### Dash0View Status Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of the status field for a synchronized Dash0View resource. ```yaml Kind: Dash0View ... Status: Synchronization Status: successful Synchronized At: 2025-09-05T11:47:56Z ``` -------------------------------- ### Dash0SyntheticCheck Status Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md An example of the status field for a synchronized Dash0SyntheticCheck resource. ```yaml Kind: Dash0SyntheticCheck ... Status: Synchronization Status: successful Synchronized At: 2025-09-05T11:47:56Z ``` -------------------------------- ### Minikube Docker Environment Setup Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Run `eval $(minikube docker-env)` to make locally built container images available in the Minikube cluster. ```bash eval $(minikube docker-env) ``` -------------------------------- ### Make Help Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Run `make help` for more information on all potential `make` targets. ```bash make help ``` -------------------------------- ### All Possible Monitoring Template Settings Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example showing all possible settings within the monitoring template for automatic namespace monitoring. ```yaml operator: monitoringTemplate: spec: instrumentWorkloads: mode: none logCollection: enabled: true eventCollection: enabled: true prometheusScraping: enabled: false filter: traces: span: - 'attributes["http.route"] == "/ready"' - 'attributes["http.route"] == "/metrics"' spanevent: - 'attributes["grpc"] == true' - 'IsMatch(name, ".*grpc.*")' metrics: metric: - 'name == "k8s.replicaset.available"' - 'name == "k8s.replicaset.desired"' datapoint: - 'metric.type == METRIC_DATA_TYPE_SUMMARY' - 'resource.attributes["service.name"] == "my_service_name"' logs: log_records: - 'IsMatch(body, ".*password.*")' - 'severity_number < SEVERITY_NUMBER_WARN' transform: trace_statements: - 'truncate_all(span.attributes, 1024)' metric_statements: - conditions: - 'metric.type == METRIC_DATA_TYPE_SUM' statements: - 'truncate_all(datapoint.attributes, 1024)' log_statements: - 'truncate_all(log.attributes, 1024)' synchronizePersesDashboards: false synchronizePrometheusRules: false ``` -------------------------------- ### Run all tests Source: https://github.com/dash0hq/dash0-operator/blob/main/images/instrumentation/test/README.md Command to execute all integration tests. ```bash npm run test ``` -------------------------------- ### Create Kind Cluster and Registry Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Run `test-resources/bin/create_cluster_and_registry.sh` to create a kind cluster and local registry for testing. ```bash test-resources/bin/create_cluster_and_registry.sh ``` -------------------------------- ### Signal-to-Metrics Rule Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md An example of a signal-to-metrics rule that derives a latency histogram for requests to a specific HTTP route. ```yaml apiVersion: operator.dash0.com/v1alpha1 kind: Dash0SignalToMetrics metadata: name: checkout-latency spec: enabled: true display: name: Checkout Service Latency match: signal: spans filters: - key: http.route operator: is value: /api/v1/checkout output: name: checkout.request.duration description: How long calls to our checkout API take interval: 60s ``` -------------------------------- ### Build and push IE images Source: https://github.com/dash0hq/dash0-operator/blob/main/test-resources/intelligentedge/README.md A helper script to build and push the intelligent edge collector and barker images to a specified repository prefix. ```bash DASH0_REPO_ROOT=/path/to/cloned/repo ./build-ie-and-barker.sh --push ``` -------------------------------- ### Run tests for a subset of CPU architectures Source: https://github.com/dash0hq/dash0-operator/blob/main/images/instrumentation/test/README.md Command to run tests for specific CPU architectures. ```bash ARCHITECTURES=arm64,x86_64 npm run test ``` -------------------------------- ### Running a scenario with images from ghcr.io Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md This command demonstrates how to run a test scenario using images that have been built from the main branch and pushed to ghcr.io, specifying the image repository prefix, tag, and pull policy. ```bash IMAGE_REPOSITORY_PREFIX=ghcr.io/dash0hq/ \ IMAGE_TAG=main-dev \ PULL_POLICY="" \ test-resources/bin/test-scenario-01-aum-operator-cr.sh ``` -------------------------------- ### Install Dash0 Operator with Kubernetes Secret Reference Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Helm command to install the operator using a Kubernetes secret reference for authentication. ```bash helm install \ --wait \ --namespace dash0-system \ --create-namespace \ --set operator.dash0Export.enabled=true \ --set operator.dash0Export.endpoint=REPLACE THIS WITH YOUR DASH0 INGRESS ENDPOINT \ --set operator.dash0Export.apiEndpoint=REPLACE THIS WITH YOUR DASH0 API ENDPOINT \ --set operator.dash0Export.secretRef.name=REPLACE THIS WITH THE NAME OF AN EXISTING KUBERNETES SECRET \ --set operator.dash0Export.secretRef.key=REPLACE THIS WITH THE PROPERTY KEY IN THAT SECRET \ --set operator.clusterName=REPLACE THIS WITH YOUR THE NAME OF THE CLUSTER (OPTIONAL) \ dash0-operator \ dash0-operator/dash0-operator ``` -------------------------------- ### Build, Push, and Deploy with Kind and Local Registry Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Builds container images locally, pushes them to a local registry, and deploys the Helm chart using Kind. Images are tagged with the local registry prefix. PULL_POLICY is set to Always. ```bash make images push-images deploy IMAGE_REPOSITORY_PREFIX="localhost:5001/" PULL_POLICY=Always ``` -------------------------------- ### Running a scenario with Helm chart from remote repository Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md This command shows how to run a test scenario using the Helm chart from the official remote repository and its default images. It assumes the Helm repository has been installed beforehand and skips building test application images. ```bash SKIP_IMAGE_BUILDS=true \ OPERATOR_HELM_CHART=dash0-operator/dash0-operator \ test-resources/bin/test-scenario-01-aum-operator-cr.sh ``` -------------------------------- ### Run Tests Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Runs go unit tests and helm chart tests. ```bash make test ``` -------------------------------- ### Collector CrashLoopBackOff Error Example Source: https://github.com/dash0hq/dash0-operator/blob/main/images/filelogoffsetvolumeownership/README.md Example error messages indicating a CrashLoopBackOff for the OpenTelemetry collector container due to permission denied when accessing the offset storage directory. ```text opentelemetry-collector Error: cannot start pipelines: failed to start "file_log" receiver: storage client: open /var/otelcol/filelogreceiver_offsets/receiver_filelog_: permission denied opentelemetry-collector 2025/11/19 14:56:38 collector server run finished with error: cannot start pipelines: failed to start "file_log" receiver: storage client: open /var/otelcol/filelogreceiver_offsets/receiver_filelog_: permission denied ``` -------------------------------- ### Install Dash0 Operator with Direct Token Configuration Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Helm command to install the operator with direct configuration for Dash0 export endpoint, API endpoint, and authentication token. ```bash helm install \ --wait \ --namespace dash0-system \ --create-namespace \ --set operator.dash0Export.enabled=true \ --set operator.dash0Export.endpoint=REPLACE THIS WITH YOUR DASH0 INGRESS ENDPOINT \ --set operator.dash0Export.apiEndpoint=REPLACE THIS WITH YOUR DASH0 API ENDPOINT \ --set operator.dash0Export.token=REPLACE THIS WITH YOUR DASH0 AUTH TOKEN \ --set operator.clusterName=REPLACE THIS WITH YOUR THE NAME OF THE CLUSTER (OPTIONAL) \ dash0-operator \ dash0-operator/dash0-operator ``` -------------------------------- ### ArgoCD Ignore Differences Example Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example configuration for an ArgoCD Application resource to ignore differences in TLS certificates and CA bundles generated by the Dash0 operator Helm chart. ```yaml --- apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: dash0-operator namespace: argocd finalizers: - resources-finalizer.argocd.argoproj.io spec: source: chart: dash0-operator repoURL: https://dash0hq.github.io/dash0-operator targetRevision: ... # ... your current spec for the dash0-operator ArgoCD application # Ignore certificates which are generated on the fly during Helm chart template rendering: ignoreDifferences: - kind: Secret name: dash0-operator-certificates jsonPointers: - /data/ca.crt - /data/tls.crt - /data/tls.key - group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration name: dash0-operator-injector jsonPointers: - /webhooks/0/clientConfig/caBundle - group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration name: dash0-operator-monitoring-mutating jsonPointers: - /webhooks/0/clientConfig/caBundle - group: admissionregistration.k8s.io kind: MutatingWebhookConfiguration name: dash0-operator-operator-configuration-mutating jsonPointers: - /webhooks/0/clientConfig/caBundle - group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration name: dash0-operator-monitoring-validator jsonPointers: - /webhooks/0/clientConfig/caBundle - group: admissionregistration.k8s.io kind: ValidatingWebhookConfiguration name: dash0-operator-operator-configuration-validator jsonPointers: - /webhooks/0/clientConfig/caBundle ``` -------------------------------- ### Run tests for a subset of runtimes Source: https://github.com/dash0hq/dash0-operator/blob/main/images/instrumentation/test/README.md Command to run tests for specific runtimes. ```bash RUNTIMES=c,dotnet,jvm,node npm run test ``` -------------------------------- ### PagerDuty Notification Channel Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of creating a PagerDuty notification channel. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0NotificationChannel metadata: name: pagerduty-alerts spec: display: name: PagerDuty Alerts type: pagerduty pagerdutyConfig: key: "my-integration-key" url: "https://events.pagerduty.com/v2/enqueue" ``` -------------------------------- ### OpsGenie Notification Channel Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of creating an OpsGenie notification channel. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0NotificationChannel metadata: name: opsgenie-alerts spec: display: name: OpsGenie Alerts type: opsgenie opsgenieConfig: instance: eu apiKey: "my-opsgenie-api-key" ``` -------------------------------- ### Build and Deploy with Docker Desktop Source: https://github.com/dash0hq/dash0-operator/blob/main/CONTRIBUTING.md Builds container images locally and deploys the Helm chart using Docker Desktop. Images are tagged with ':latest'. No Dash0OperatorConfiguration or Dash0Monitoring resource is created automatically. ```bash make images deploy IMAGE_REPOSITORY_PREFIX="" PULL_POLICY=Never ``` -------------------------------- ### Email Notification Channel Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example of creating an Email notification channel. ```yaml apiVersion: operator.dash0.com/v1beta1 kind: Dash0NotificationChannel metadata: name: email-alerts spec: display: name: Email Alerts type: email_v2 emailV2Config: recipients: - oncall@example.com - teamlead@example.com plaintext: false ``` -------------------------------- ### Manual YAML Deployment with Default Secret Reference Source: https://github.com/dash0hq/dash0-operator/blob/main/helm-chart/dash0-operator/README.md Example YAML for a Dash0 operator configuration resource using default secret reference names. ```yaml apiVersion: operator.dash0.com/v1alpha1 kind: Dash0OperatorConfiguration metadata: name: dash0-operator-configuration spec: exports: - dash0: endpoint: ingress... # TODO needs to be replaced with the actual value, see above authorization: secretRef: {} apiEndpoint: https://api... # optional, see above ```