You need to add this repository to your Helm repositories:
helm repo add datadog https://helm.datadoghq.com
helm repo update
To install the chart with the release name <RELEASE_NAME> run:
helm install --name <RELEASE_NAME> \
--set datadog.apiKey=<DD_API_KEY> \
--set datadog.pipelineId=<DD_OP_PIPELINE_ID> \
datadog/observability-pipelines-workerBy default, this chart creates secrets for your Observability Pipelines API key. However, you can use
manually created Secrets by setting the datadog.apiKeyExistingSecret values
(see Creating a Secret, below).
Note: When creating the Secret(s), be sure to name the key fields api-key.
After a few minutes, you should see your new pipeline active in Datadog.
Note: You can set your Datadog site using the datadog.site option.
helm install --name <RELEASE_NAME> \
--set datadog.apiKey=<DD_API_KEY> \
--set datadog.pipelineId=<DD_OP_PIPELINE_ID> \
--set datadog.site=<DATADOG_SITE> \
datadog/observability-pipelines-workerTo create a Secret that contains your Datadog API key, replace the <DATADOG_API_KEY> below with the API key for your
organization. This Secret is used in the manifest to deploy the Observability Pipelines Worker.
export DATADOG_SECRET_NAME=datadog-secrets
kubectl create secret generic $DATADOG_SECRET_NAME \
--from-literal api-key="<DD_API_KEY>" \Note: This creates a Secret in the default Namespace. If you are using a custom Namespace, update the Namespace flag of the command before running it.
Now, the installation command contains a reference to the Secret.
helm install --name <RELEASE_NAME> \
--set datadog.apiKeyExistingSecret=$DATADOG_SECRET_NAME \
datadog/observability-pipelines-workerTo uninstall the <RELEASE_NAME> release:
helm delete <RELEASE_NAME>The command removes all the Kubernetes components associated with the chart and deletes the release.
| Key | Type | Default | Description |
|---|---|---|---|
| affinity | object | {} |
Configure affinity and anti-affinity. |
| args | list | ["run"] |
Override default image arguments. |
| autoscaling.behavior | object | {} |
Configure separate scale-up and scale-down behaviors. |
| autoscaling.enabled | bool | false |
If true, create a HorizontalPodAutoscaler. |
| autoscaling.maxReplicas | int | 10 |
Specify the maximum number of replicas. |
| autoscaling.minReplicas | int | 1 |
Specify the minimum number of replicas. |
| autoscaling.targetCPUUtilizationPercentage | int | 80 |
Specify the target CPU utilization. |
| autoscaling.targetMemoryUtilizationPercentage | int | nil |
Specify the target memory utilization. |
| command | list | [] |
Override default image command. |
| commonLabels | object | {} |
Labels to apply to all resources. |
| containerPorts | list | [] |
Manually define ContainerPort array, overriding automated generation of ContainerPorts. |
| datadog.apiKey | string | nil |
Specify your Datadog API key. |
| datadog.apiKeyExistingSecret | string | "" |
Specify a preexisting Secret that has your API key instead of creating a new one. The value must be stored under the api-key. |
| datadog.bootstrap | object | {"config":{},"secretFileContents":{}} |
Provide a bootstrap file that conforms to the options provided in this documentation: https://docs.datadoghq.com/observability_pipelines/configuration/install_the_worker/advanced_worker_configurations/#bootstrap-options |
| datadog.bootstrap.config | object | {} |
The bootstrap file contents. Use only if secretFileContents is not provided. |
| datadog.bootstrap.secretFileContents | object | {} |
Additional helper for the "secrets" portion of the bootstrap file. Use if your backend_type is of type 'file'. Helm chart will copy the provided secrets into a new file, and correctly setup the bootstrap to point to the secrets file in bootstrap.config. eg: { "SOURCE_DATADOG_AGENT_ADDRESS" : " 0.0.0.0:8282" } |
| datadog.dataDir | string | "/var/lib/observability-pipelines-worker" |
The data directory for OPW to store runtime data in. |
| datadog.pipelineId | string | nil |
Specify your Datadog Observability Pipelines pipeline ID |
| datadog.proxy | object | {"http":"","https":"","noProxy":[]} |
Configure proxy settings for the Worker. ref: https://docs.datadoghq.com/observability_pipelines/setup/ |
| datadog.proxy.http | string | "" |
HTTP proxy URL. Sets the DD_PROXY_HTTP environment variable. |
| datadog.proxy.https | string | "" |
HTTPS proxy URL. Sets the DD_PROXY_HTTPS environment variable. |
| datadog.proxy.noProxy | list | [] |
List of hosts or CIDRs to bypass the proxy. Sets the DD_PROXY_NO_PROXY environment variable (comma-separated). |
| datadog.site | string | "datadoghq.com" |
The site of the Datadog intake to send data to. |
| datadog.workerAPI.address | string | "0.0.0.0:8686" |
Local address to bind the Worker's API to. if you change this port, you'll need to update the livenessProbe and readinessProbe |
| datadog.workerAPI.enabled | bool | true |
Whether to enable the Worker's API. |
| dnsConfig | object | {} |
Specify the dnsConfig. |
| dnsPolicy | string | "ClusterFirst" |
Specify the dnsPolicy. |
| env | list | [] |
Define environment variables. |
| envFrom | list | [] |
Define environment variables from ConfigMap or Secret data. |
| extraContainers | list | [] |
Specify extra Containers to be added. |
| extraVolumeMounts | list | [] |
Specify Additional VolumeMounts to use. |
| extraVolumes | list | [] |
Specify additional Volumes to use. |
| fullnameOverride | string | "" |
Override the fully qualified app name. |
| image.digest | string | nil |
Specify the image digest to use; takes precedence over image.tag. |
| image.name | string | "observability-pipelines-worker" |
Specify the image name to use (relative to image.repository). |
| image.pullPolicy | string | "IfNotPresent" |
Specify the pullPolicy. |
| image.pullSecrets | list | [] |
Specify the imagePullSecrets. |
| image.repository | string | "gcr.io/datadoghq" |
Specify the image repository to use. |
| image.tag | string | "2.16.1" |
Specify the image tag to use. |
| ingress.annotations | object | {} |
Specify annotations for the Ingress. |
| ingress.className | string | "" |
Specify the ingressClassName, requires Kubernetes >= 1.18. |
| ingress.enabled | bool | false |
If true, create an Ingress resource. |
| ingress.hosts | list | [] |
Configure the hosts and paths for the Ingress. |
| ingress.tls | list | [] |
Configure TLS for the Ingress. |
| initContainers | list | [] |
Specify initContainers to be added. |
| lifecycle | object | {} |
Specify lifecycle hooks for Containers. |
| livenessProbe | object | {"failureThreshold":5,"initialDelaySeconds":15,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":15} |
Specify the livenessProbe configuration. When no probe handler (httpGet, tcpSocket, exec, grpc) is provided, the chart defaults to tcpSocket on the Worker API port (8686) — chosen because the Worker API is a gRPC (HTTP/2) server and tcpSocket is compatible with every supported Kubernetes version. Setting any handler in your values disables the default, so existing overrides are not coalesced with it. |
| nameOverride | string | "" |
Override the name of the app. |
| nodeSelector | object | {} |
Configure nodeSelector. |
| persistence.accessModes | list | ["ReadWriteOnce"] |
Specify the accessModes for PersistentVolumeClaims. |
| persistence.annotations | object | {} |
Specify the annotations for PersistentVolumeClaimsTemplates. |
| persistence.enabled | bool | false |
If true, create and use PersistentVolumeClaims. |
| persistence.existingClaim | string | "" |
Name of an existing PersistentVolumeClaim to use. |
| persistence.finalizers | list | ["kubernetes.io/pvc-protection"] |
Specify the finalizers of PersistentVolumeClaims. |
| persistence.retentionPolicy | object | {} |
Set the PVC retention policy. See https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention |
| persistence.selector | object | {} |
Specify the selectors for PersistentVolumeClaims. |
| persistence.size | string | "10Gi" |
Specify the size of PersistentVolumeClaims. |
| persistence.storageClassName | string | nil |
Specify the storageClassName for PersistentVolumeClaims. |
| podAnnotations | object | {} |
Set annotations on Pods. |
| podDisruptionBudget.enabled | bool | false |
If true, create a PodDisruptionBudget. |
| podDisruptionBudget.maxUnavailable | int | nil |
Specify the number of Pods that can be unavailable after an eviction. |
| podDisruptionBudget.minAvailable | int | 1 |
Specify the number of Pods that must still be available after an eviction. |
| podHostNetwork | bool | false |
Enable the hostNetwork option on Pods. |
| podLabels | object | {} |
Set labels on Pods. |
| podManagementPolicy | string | "Parallel" |
Specify the podManagementPolicy. |
| podPriorityClassName | string | "" |
Set the priorityClassName. |
| podSecurityContext | object | {} |
Allows you to overwrite the default PodSecurityContext. |
| readinessProbe | object | {"failureThreshold":3,"initialDelaySeconds":15,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":15} |
Specify the readinessProbe configuration. When no probe handler (httpGet, tcpSocket, exec, grpc) is provided, the chart defaults to tcpSocket on the Worker API port (8686) — chosen because the Worker API is a gRPC (HTTP/2) server and tcpSocket is compatible with every supported Kubernetes version. Setting any handler in your values disables the default, so existing overrides are not coalesced with it. |
| replicas | int | 1 |
Specify the number of replicas to create. |
| resources | object | {"requests":{"cpu":2,"memory":"4Gi"}} |
Specify resource requests and limits. The default requests are conservative recommendations for typical Worker workloads; tune for your pipeline throughput. Limits are intentionally omitted by default — see the commented example below. |
| securityContext | object | {} |
Specify securityContext for Containers. |
| service.annotations | object | {} |
Specify annotations for the Service. |
| service.enabled | bool | true |
If true, create a Service resource. |
| service.externalTrafficPolicy | string | "" |
Specify the externalTrafficPolicy. |
| service.ipFamilies | list | [] |
Configure IPv4/IPv6 dual-stack. |
| service.ipFamilyPolicy | string | "" |
Configure IPv4/IPv6 dual-stack. |
| service.loadBalancerIP | string | "" |
Specify the loadBalancerIP. |
| service.ports | array | [] |
Manually set the ServicePort array, overriding automated generation of ServicePorts. |
| service.topologyKeys | array | nil |
Specify the topologyKeys. |
| service.type | string | "ClusterIP" |
Specify the type for the Service. |
| serviceAccount.annotations | object | {} |
Annotations to add to the ServiceAccount, if serviceAccount.create is true. |
| serviceAccount.create | bool | true |
If true, create a ServiceAccount. |
| serviceAccount.name | string | "default" |
Specify a preexisting ServiceAccount to use if serviceAccount.create is false. |
| serviceHeadless.enabled | bool | true |
If true, create a "headless" Service resource. |
| terminationGracePeriodSeconds | int | 60 |
Override terminationGracePeriodSeconds. |
| tolerations | list | [] |
Configure taints and tolerations. |
| topologySpreadConstraints | list | [] |
Configure topology spread constraints. |
| updateStrategy | object | {} |
Customize the updateStrategy. |