diff --git a/api/datadoghq/v2alpha1/datadogagent_types.go b/api/datadoghq/v2alpha1/datadogagent_types.go index 43cd18a86..59c6a80fd 100644 --- a/api/datadoghq/v2alpha1/datadogagent_types.go +++ b/api/datadoghq/v2alpha1/datadogagent_types.go @@ -47,6 +47,8 @@ type DatadogFeatures struct { // OtelCollector configuration. // +doc-gen:link=https://docs.datadoghq.com/opentelemetry/setup/ddot_collector/install/kubernetes_daemonset/?tab=datadogoperator#overview OtelCollector *OtelCollectorFeatureConfig `json:"otelCollector,omitempty"` + // OtelAgentGateway configuration. + OtelAgentGateway *OtelAgentGatewayFeatureConfig `json:"otelAgentGateway,omitempty"` // LogCollection configuration. LogCollection *LogCollectionFeatureConfig `json:"logCollection,omitempty"` // LiveProcessCollection configuration. @@ -1008,6 +1010,27 @@ type OtelCollectorFeatureConfig struct { CoreConfig *CoreConfig `json:"coreConfig,omitempty"` } +// OtelAgentGatewayFeatureConfig contains the configuration for the OTel Agent Gateway. +// +k8s:openapi-gen=true +type OtelAgentGatewayFeatureConfig struct { + // Enabled enables the OTel Agent Gateway. + // Default: false + // +optional + Enabled *bool `json:"enabled,omitempty"` + + // Conf overrides the configuration for the default OTel Agent Gateway. + // This must point to a ConfigMap containing a valid OTel collector configuration. + // When passing a configmap, file name *must* be otel-gateway-config.yaml. + // +optional + Conf *CustomConfig `json:"conf,omitempty"` + + // Ports contains the ports that the OTel Collector is listening on. + // Defaults: otel-grpc:4317 / otel-http:4318. + // +optional + // +listType=atomic + Ports []*corev1.ContainerPort `json:"ports,omitempty"` +} + // ControlPlaneMonitoringFeatureConfig contains the configuration for the control plane monitoring. // +k8s:openapi-gen=true type ControlPlaneMonitoringFeatureConfig struct { diff --git a/api/datadoghq/v2alpha1/zz_generated.deepcopy.go b/api/datadoghq/v2alpha1/zz_generated.deepcopy.go index f1db2ea1c..f9640a0ca 100644 --- a/api/datadoghq/v2alpha1/zz_generated.deepcopy.go +++ b/api/datadoghq/v2alpha1/zz_generated.deepcopy.go @@ -1204,6 +1204,11 @@ func (in *DatadogFeatures) DeepCopyInto(out *DatadogFeatures) { *out = new(OtelCollectorFeatureConfig) (*in).DeepCopyInto(*out) } + if in.OtelAgentGateway != nil { + in, out := &in.OtelAgentGateway, &out.OtelAgentGateway + *out = new(OtelAgentGatewayFeatureConfig) + (*in).DeepCopyInto(*out) + } if in.LogCollection != nil { in, out := &in.LogCollection, &out.LogCollection *out = new(LogCollectionFeatureConfig) @@ -2703,6 +2708,42 @@ func (in *OriginDetectionUnified) DeepCopy() *OriginDetectionUnified { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OtelAgentGatewayFeatureConfig) DeepCopyInto(out *OtelAgentGatewayFeatureConfig) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Conf != nil { + in, out := &in.Conf, &out.Conf + *out = new(CustomConfig) + (*in).DeepCopyInto(*out) + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *out = make([]*corev1.ContainerPort, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(corev1.ContainerPort) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OtelAgentGatewayFeatureConfig. +func (in *OtelAgentGatewayFeatureConfig) DeepCopy() *OtelAgentGatewayFeatureConfig { + if in == nil { + return nil + } + out := new(OtelAgentGatewayFeatureConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OtelCollectorFeatureConfig) DeepCopyInto(out *OtelCollectorFeatureConfig) { *out = *in diff --git a/api/datadoghq/v2alpha1/zz_generated.openapi.go b/api/datadoghq/v2alpha1/zz_generated.openapi.go index 37a6f3bcb..f54a50a1f 100644 --- a/api/datadoghq/v2alpha1/zz_generated.openapi.go +++ b/api/datadoghq/v2alpha1/zz_generated.openapi.go @@ -43,6 +43,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OTLPProtocolsConfig": schema_datadog_operator_api_datadoghq_v2alpha1_OTLPProtocolsConfig(ref), "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OTLPReceiverConfig": schema_datadog_operator_api_datadoghq_v2alpha1_OTLPReceiverConfig(ref), "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OrchestratorExplorerFeatureConfig": schema_datadog_operator_api_datadoghq_v2alpha1_OrchestratorExplorerFeatureConfig(ref), + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelAgentGatewayFeatureConfig": schema_datadog_operator_api_datadoghq_v2alpha1_OtelAgentGatewayFeatureConfig(ref), "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelCollectorFeatureConfig": schema_datadog_operator_api_datadoghq_v2alpha1_OtelCollectorFeatureConfig(ref), "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.PrometheusScrapeFeatureConfig": schema_datadog_operator_api_datadoghq_v2alpha1_PrometheusScrapeFeatureConfig(ref), "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.RemoteConfigConfiguration": schema_datadog_operator_api_datadoghq_v2alpha1_RemoteConfigConfiguration(ref), @@ -608,6 +609,12 @@ func schema_datadog_operator_api_datadoghq_v2alpha1_DatadogFeatures(ref common.R Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelCollectorFeatureConfig"), }, }, + "otelAgentGateway": { + SchemaProps: spec.SchemaProps{ + Description: "OtelAgentGateway configuration.", + Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelAgentGatewayFeatureConfig"), + }, + }, "logCollection": { SchemaProps: spec.SchemaProps{ Description: "LogCollection configuration.", @@ -786,7 +793,7 @@ func schema_datadog_operator_api_datadoghq_v2alpha1_DatadogFeatures(ref common.R }, }, Dependencies: []string{ - "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.APMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ASMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.AdmissionControllerFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.AutoscalingFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.CSPMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.CWSFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ClusterChecksFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ControlPlaneMonitoringFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.DogstatsdFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.EBPFCheckFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.EventCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ExternalMetricsServerFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.GPUFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.HelmCheckFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.KubeStateMetricsCoreFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.LiveContainerCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.LiveProcessCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.LogCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.NPMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OOMKillFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OTLPFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OrchestratorExplorerFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelCollectorFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ProcessDiscoveryFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.PrometheusScrapeFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.RemoteConfigurationFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.SBOMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ServiceDiscoveryFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.TCPQueueLengthFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.USMFeatureConfig"}, + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.APMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ASMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.AdmissionControllerFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.AutoscalingFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.CSPMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.CWSFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ClusterChecksFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ControlPlaneMonitoringFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.DogstatsdFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.EBPFCheckFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.EventCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ExternalMetricsServerFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.GPUFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.HelmCheckFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.KubeStateMetricsCoreFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.LiveContainerCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.LiveProcessCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.LogCollectionFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.NPMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OOMKillFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OTLPFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OrchestratorExplorerFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelAgentGatewayFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.OtelCollectorFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ProcessDiscoveryFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.PrometheusScrapeFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.RemoteConfigurationFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.SBOMFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.ServiceDiscoveryFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.TCPQueueLengthFeatureConfig", "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.USMFeatureConfig"}, } } @@ -1496,6 +1503,52 @@ func schema_datadog_operator_api_datadoghq_v2alpha1_OrchestratorExplorerFeatureC } } +func schema_datadog_operator_api_datadoghq_v2alpha1_OtelAgentGatewayFeatureConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OtelAgentGatewayFeatureConfig contains the configuration for the OTel Agent Gateway.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Description: "Enabled enables the OTel Agent Gateway. Default: false", + Type: []string{"boolean"}, + Format: "", + }, + }, + "conf": { + SchemaProps: spec.SchemaProps{ + Description: "Conf overrides the configuration for the default OTel Agent Gateway. This must point to a ConfigMap containing a valid OTel collector configuration. When passing a configmap, file name *must* be otel-gateway-config.yaml.", + Ref: ref("github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.CustomConfig"), + }, + }, + "ports": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-type": "atomic", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Ports contains the ports that the OTel Collector is listening on. Defaults: otel-grpc:4317 / otel-http:4318.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/api/core/v1.ContainerPort"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/DataDog/datadog-operator/api/datadoghq/v2alpha1.CustomConfig", "k8s.io/api/core/v1.ContainerPort"}, + } +} + func schema_datadog_operator_api_datadoghq_v2alpha1_OtelCollectorFeatureConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/config/crd/bases/v1/datadoghq.com_datadogagentinternals.yaml b/config/crd/bases/v1/datadoghq.com_datadogagentinternals.yaml index 4c91b85fb..a9b9b0d11 100644 --- a/config/crd/bases/v1/datadoghq.com_datadogagentinternals.yaml +++ b/config/crd/bases/v1/datadoghq.com_datadogagentinternals.yaml @@ -1937,6 +1937,106 @@ spec: Default: true type: boolean type: object + otelAgentGateway: + description: OtelAgentGateway configuration. + properties: + conf: + description: |- + Conf overrides the configuration for the default OTel Agent Gateway. + This must point to a ConfigMap containing a valid OTel collector configuration. + When passing a configmap, file name *must* be otel-gateway-config.yaml. + properties: + configData: + description: ConfigData corresponds to the configuration file content. + type: string + configMap: + description: ConfigMap references an existing ConfigMap with the configuration file content. + properties: + items: + description: Items maps a ConfigMap data `key` to a file `path` mount. + items: + description: Maps a string key to a path within a volume. + properties: + key: + description: key is the key to project. + type: string + mode: + description: |- + mode is Optional: mode bits used to set permissions on this file. + Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. + YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. + If not specified, the volume defaultMode will be used. + This might be in conflict with other options that affect the file + mode, like fsGroup, and the result can be other mode bits set. + format: int32 + type: integer + path: + description: |- + path is the relative path of the file to map the key to. + May not be an absolute path. + May not contain the path element '..'. + May not start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + description: Name is the name of the ConfigMap. + type: string + type: object + type: object + enabled: + description: |- + Enabled enables the OTel Agent Gateway. + Default: false + type: boolean + ports: + description: |- + Ports contains the ports that the OTel Collector is listening on. + Defaults: otel-grpc:4317 / otel-http:4318. + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: |- + Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: |- + Number of port to expose on the host. + If specified, this must be a valid port number, 0 < x < 65536. + If HostNetwork is specified, this must match ContainerPort. + Most containers do not need this. + format: int32 + type: integer + name: + description: |- + If specified, this must be an IANA_SVC_NAME and unique within the pod. Each + named port in a pod must have a unique name. Name for the port that can be + referred to by services. + type: string + protocol: + default: TCP + description: |- + Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-type: atomic + type: object otelCollector: description: OtelCollector configuration. properties: @@ -9713,6 +9813,106 @@ spec: Default: true type: boolean type: object + otelAgentGateway: + description: OtelAgentGateway configuration. + properties: + conf: + description: |- + Conf overrides the configuration for the default OTel Agent Gateway. + This must point to a ConfigMap containing a valid OTel collector configuration. + When passing a configmap, file name *must* be otel-gateway-config.yaml. + properties: + configData: + description: ConfigData corresponds to the configuration file content. + type: string + configMap: + description: ConfigMap references an existing ConfigMap with the configuration file content. + properties: + items: + description: Items maps a ConfigMap data `key` to a file `path` mount. + items: + description: Maps a string key to a path within a volume. + properties: + key: + description: key is the key to project. + type: string + mode: + description: |- + mode is Optional: mode bits used to set permissions on this file. + Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. + YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. + If not specified, the volume defaultMode will be used. + This might be in conflict with other options that affect the file + mode, like fsGroup, and the result can be other mode bits set. + format: int32 + type: integer + path: + description: |- + path is the relative path of the file to map the key to. + May not be an absolute path. + May not contain the path element '..'. + May not start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + description: Name is the name of the ConfigMap. + type: string + type: object + type: object + enabled: + description: |- + Enabled enables the OTel Agent Gateway. + Default: false + type: boolean + ports: + description: |- + Ports contains the ports that the OTel Collector is listening on. + Defaults: otel-grpc:4317 / otel-http:4318. + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: |- + Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: |- + Number of port to expose on the host. + If specified, this must be a valid port number, 0 < x < 65536. + If HostNetwork is specified, this must match ContainerPort. + Most containers do not need this. + format: int32 + type: integer + name: + description: |- + If specified, this must be an IANA_SVC_NAME and unique within the pod. Each + named port in a pod must have a unique name. Name for the port that can be + referred to by services. + type: string + protocol: + default: TCP + description: |- + Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-type: atomic + type: object otelCollector: description: OtelCollector configuration. properties: diff --git a/config/crd/bases/v1/datadoghq.com_datadogagentinternals_v1alpha1.json b/config/crd/bases/v1/datadoghq.com_datadogagentinternals_v1alpha1.json index c079fe171..511d4b633 100644 --- a/config/crd/bases/v1/datadoghq.com_datadogagentinternals_v1alpha1.json +++ b/config/crd/bases/v1/datadoghq.com_datadogagentinternals_v1alpha1.json @@ -2024,6 +2024,109 @@ }, "type": "object" }, + "otelAgentGateway": { + "additionalProperties": false, + "description": "OtelAgentGateway configuration.", + "properties": { + "conf": { + "additionalProperties": false, + "description": "Conf overrides the configuration for the default OTel Agent Gateway.\nThis must point to a ConfigMap containing a valid OTel collector configuration.\nWhen passing a configmap, file name *must* be otel-gateway-config.yaml.", + "properties": { + "configData": { + "description": "ConfigData corresponds to the configuration file content.", + "type": "string" + }, + "configMap": { + "additionalProperties": false, + "description": "ConfigMap references an existing ConfigMap with the configuration file content.", + "properties": { + "items": { + "description": "Items maps a ConfigMap data `key` to a file `path` mount.", + "items": { + "additionalProperties": false, + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.", + "type": "string" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "key" + ], + "x-kubernetes-list-type": "map" + }, + "name": { + "description": "Name is the name of the ConfigMap.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "description": "Enabled enables the OTel Agent Gateway.\nDefault: false", + "type": "boolean" + }, + "ports": { + "description": "Ports contains the ports that the OTel Collector is listening on.\nDefaults: otel-grpc:4317 / otel-http:4318.", + "items": { + "additionalProperties": false, + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address.\nThis must be a valid port number, 0 \u003c x \u003c 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host.\nIf specified, this must be a valid port number, 0 \u003c x \u003c 65536.\nIf HostNetwork is specified, this must match ContainerPort.\nMost containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\nnamed port in a pod must have a unique name. Name for the port that can be\nreferred to by services.", + "type": "string" + }, + "protocol": { + "default": "TCP", + "description": "Protocol for port. Must be UDP, TCP, or SCTP.\nDefaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, "otelCollector": { "additionalProperties": false, "description": "OtelCollector configuration.", @@ -9625,6 +9728,109 @@ }, "type": "object" }, + "otelAgentGateway": { + "additionalProperties": false, + "description": "OtelAgentGateway configuration.", + "properties": { + "conf": { + "additionalProperties": false, + "description": "Conf overrides the configuration for the default OTel Agent Gateway.\nThis must point to a ConfigMap containing a valid OTel collector configuration.\nWhen passing a configmap, file name *must* be otel-gateway-config.yaml.", + "properties": { + "configData": { + "description": "ConfigData corresponds to the configuration file content.", + "type": "string" + }, + "configMap": { + "additionalProperties": false, + "description": "ConfigMap references an existing ConfigMap with the configuration file content.", + "properties": { + "items": { + "description": "Items maps a ConfigMap data `key` to a file `path` mount.", + "items": { + "additionalProperties": false, + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.", + "type": "string" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "key" + ], + "x-kubernetes-list-type": "map" + }, + "name": { + "description": "Name is the name of the ConfigMap.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "description": "Enabled enables the OTel Agent Gateway.\nDefault: false", + "type": "boolean" + }, + "ports": { + "description": "Ports contains the ports that the OTel Collector is listening on.\nDefaults: otel-grpc:4317 / otel-http:4318.", + "items": { + "additionalProperties": false, + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address.\nThis must be a valid port number, 0 \u003c x \u003c 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host.\nIf specified, this must be a valid port number, 0 \u003c x \u003c 65536.\nIf HostNetwork is specified, this must match ContainerPort.\nMost containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\nnamed port in a pod must have a unique name. Name for the port that can be\nreferred to by services.", + "type": "string" + }, + "protocol": { + "default": "TCP", + "description": "Protocol for port. Must be UDP, TCP, or SCTP.\nDefaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, "otelCollector": { "additionalProperties": false, "description": "OtelCollector configuration.", diff --git a/config/crd/bases/v1/datadoghq.com_datadogagentprofiles.yaml b/config/crd/bases/v1/datadoghq.com_datadogagentprofiles.yaml index f453710ec..c59b46064 100644 --- a/config/crd/bases/v1/datadoghq.com_datadogagentprofiles.yaml +++ b/config/crd/bases/v1/datadoghq.com_datadogagentprofiles.yaml @@ -1937,6 +1937,106 @@ spec: Default: true type: boolean type: object + otelAgentGateway: + description: OtelAgentGateway configuration. + properties: + conf: + description: |- + Conf overrides the configuration for the default OTel Agent Gateway. + This must point to a ConfigMap containing a valid OTel collector configuration. + When passing a configmap, file name *must* be otel-gateway-config.yaml. + properties: + configData: + description: ConfigData corresponds to the configuration file content. + type: string + configMap: + description: ConfigMap references an existing ConfigMap with the configuration file content. + properties: + items: + description: Items maps a ConfigMap data `key` to a file `path` mount. + items: + description: Maps a string key to a path within a volume. + properties: + key: + description: key is the key to project. + type: string + mode: + description: |- + mode is Optional: mode bits used to set permissions on this file. + Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. + YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. + If not specified, the volume defaultMode will be used. + This might be in conflict with other options that affect the file + mode, like fsGroup, and the result can be other mode bits set. + format: int32 + type: integer + path: + description: |- + path is the relative path of the file to map the key to. + May not be an absolute path. + May not contain the path element '..'. + May not start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + description: Name is the name of the ConfigMap. + type: string + type: object + type: object + enabled: + description: |- + Enabled enables the OTel Agent Gateway. + Default: false + type: boolean + ports: + description: |- + Ports contains the ports that the OTel Collector is listening on. + Defaults: otel-grpc:4317 / otel-http:4318. + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: |- + Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: |- + Number of port to expose on the host. + If specified, this must be a valid port number, 0 < x < 65536. + If HostNetwork is specified, this must match ContainerPort. + Most containers do not need this. + format: int32 + type: integer + name: + description: |- + If specified, this must be an IANA_SVC_NAME and unique within the pod. Each + named port in a pod must have a unique name. Name for the port that can be + referred to by services. + type: string + protocol: + default: TCP + description: |- + Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-type: atomic + type: object otelCollector: description: OtelCollector configuration. properties: diff --git a/config/crd/bases/v1/datadoghq.com_datadogagentprofiles_v1alpha1.json b/config/crd/bases/v1/datadoghq.com_datadogagentprofiles_v1alpha1.json index 611b247fc..9a522af9c 100644 --- a/config/crd/bases/v1/datadoghq.com_datadogagentprofiles_v1alpha1.json +++ b/config/crd/bases/v1/datadoghq.com_datadogagentprofiles_v1alpha1.json @@ -2028,6 +2028,109 @@ }, "type": "object" }, + "otelAgentGateway": { + "additionalProperties": false, + "description": "OtelAgentGateway configuration.", + "properties": { + "conf": { + "additionalProperties": false, + "description": "Conf overrides the configuration for the default OTel Agent Gateway.\nThis must point to a ConfigMap containing a valid OTel collector configuration.\nWhen passing a configmap, file name *must* be otel-gateway-config.yaml.", + "properties": { + "configData": { + "description": "ConfigData corresponds to the configuration file content.", + "type": "string" + }, + "configMap": { + "additionalProperties": false, + "description": "ConfigMap references an existing ConfigMap with the configuration file content.", + "properties": { + "items": { + "description": "Items maps a ConfigMap data `key` to a file `path` mount.", + "items": { + "additionalProperties": false, + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.", + "type": "string" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "key" + ], + "x-kubernetes-list-type": "map" + }, + "name": { + "description": "Name is the name of the ConfigMap.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "description": "Enabled enables the OTel Agent Gateway.\nDefault: false", + "type": "boolean" + }, + "ports": { + "description": "Ports contains the ports that the OTel Collector is listening on.\nDefaults: otel-grpc:4317 / otel-http:4318.", + "items": { + "additionalProperties": false, + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address.\nThis must be a valid port number, 0 \u003c x \u003c 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host.\nIf specified, this must be a valid port number, 0 \u003c x \u003c 65536.\nIf HostNetwork is specified, this must match ContainerPort.\nMost containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\nnamed port in a pod must have a unique name. Name for the port that can be\nreferred to by services.", + "type": "string" + }, + "protocol": { + "default": "TCP", + "description": "Protocol for port. Must be UDP, TCP, or SCTP.\nDefaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, "otelCollector": { "additionalProperties": false, "description": "OtelCollector configuration.", diff --git a/config/crd/bases/v1/datadoghq.com_datadogagents.yaml b/config/crd/bases/v1/datadoghq.com_datadogagents.yaml index 14c87a8cf..6b2387a90 100644 --- a/config/crd/bases/v1/datadoghq.com_datadogagents.yaml +++ b/config/crd/bases/v1/datadoghq.com_datadogagents.yaml @@ -1937,6 +1937,106 @@ spec: Default: true type: boolean type: object + otelAgentGateway: + description: OtelAgentGateway configuration. + properties: + conf: + description: |- + Conf overrides the configuration for the default OTel Agent Gateway. + This must point to a ConfigMap containing a valid OTel collector configuration. + When passing a configmap, file name *must* be otel-gateway-config.yaml. + properties: + configData: + description: ConfigData corresponds to the configuration file content. + type: string + configMap: + description: ConfigMap references an existing ConfigMap with the configuration file content. + properties: + items: + description: Items maps a ConfigMap data `key` to a file `path` mount. + items: + description: Maps a string key to a path within a volume. + properties: + key: + description: key is the key to project. + type: string + mode: + description: |- + mode is Optional: mode bits used to set permissions on this file. + Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. + YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. + If not specified, the volume defaultMode will be used. + This might be in conflict with other options that affect the file + mode, like fsGroup, and the result can be other mode bits set. + format: int32 + type: integer + path: + description: |- + path is the relative path of the file to map the key to. + May not be an absolute path. + May not contain the path element '..'. + May not start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + description: Name is the name of the ConfigMap. + type: string + type: object + type: object + enabled: + description: |- + Enabled enables the OTel Agent Gateway. + Default: false + type: boolean + ports: + description: |- + Ports contains the ports that the OTel Collector is listening on. + Defaults: otel-grpc:4317 / otel-http:4318. + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: |- + Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: |- + Number of port to expose on the host. + If specified, this must be a valid port number, 0 < x < 65536. + If HostNetwork is specified, this must match ContainerPort. + Most containers do not need this. + format: int32 + type: integer + name: + description: |- + If specified, this must be an IANA_SVC_NAME and unique within the pod. Each + named port in a pod must have a unique name. Name for the port that can be + referred to by services. + type: string + protocol: + default: TCP + description: |- + Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-type: atomic + type: object otelCollector: description: OtelCollector configuration. properties: @@ -9763,6 +9863,106 @@ spec: Default: true type: boolean type: object + otelAgentGateway: + description: OtelAgentGateway configuration. + properties: + conf: + description: |- + Conf overrides the configuration for the default OTel Agent Gateway. + This must point to a ConfigMap containing a valid OTel collector configuration. + When passing a configmap, file name *must* be otel-gateway-config.yaml. + properties: + configData: + description: ConfigData corresponds to the configuration file content. + type: string + configMap: + description: ConfigMap references an existing ConfigMap with the configuration file content. + properties: + items: + description: Items maps a ConfigMap data `key` to a file `path` mount. + items: + description: Maps a string key to a path within a volume. + properties: + key: + description: key is the key to project. + type: string + mode: + description: |- + mode is Optional: mode bits used to set permissions on this file. + Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. + YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. + If not specified, the volume defaultMode will be used. + This might be in conflict with other options that affect the file + mode, like fsGroup, and the result can be other mode bits set. + format: int32 + type: integer + path: + description: |- + path is the relative path of the file to map the key to. + May not be an absolute path. + May not contain the path element '..'. + May not start with the string '..'. + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-map-keys: + - key + x-kubernetes-list-type: map + name: + description: Name is the name of the ConfigMap. + type: string + type: object + type: object + enabled: + description: |- + Enabled enables the OTel Agent Gateway. + Default: false + type: boolean + ports: + description: |- + Ports contains the ports that the OTel Collector is listening on. + Defaults: otel-grpc:4317 / otel-http:4318. + items: + description: ContainerPort represents a network port in a single container. + properties: + containerPort: + description: |- + Number of port to expose on the pod's IP address. + This must be a valid port number, 0 < x < 65536. + format: int32 + type: integer + hostIP: + description: What host IP to bind the external port to. + type: string + hostPort: + description: |- + Number of port to expose on the host. + If specified, this must be a valid port number, 0 < x < 65536. + If HostNetwork is specified, this must match ContainerPort. + Most containers do not need this. + format: int32 + type: integer + name: + description: |- + If specified, this must be an IANA_SVC_NAME and unique within the pod. Each + named port in a pod must have a unique name. Name for the port that can be + referred to by services. + type: string + protocol: + default: TCP + description: |- + Protocol for port. Must be UDP, TCP, or SCTP. + Defaults to "TCP". + type: string + required: + - containerPort + type: object + type: array + x-kubernetes-list-type: atomic + type: object otelCollector: description: OtelCollector configuration. properties: diff --git a/config/crd/bases/v1/datadoghq.com_datadogagents_v2alpha1.json b/config/crd/bases/v1/datadoghq.com_datadogagents_v2alpha1.json index ff9913408..bf10cb467 100644 --- a/config/crd/bases/v1/datadoghq.com_datadogagents_v2alpha1.json +++ b/config/crd/bases/v1/datadoghq.com_datadogagents_v2alpha1.json @@ -2024,6 +2024,109 @@ }, "type": "object" }, + "otelAgentGateway": { + "additionalProperties": false, + "description": "OtelAgentGateway configuration.", + "properties": { + "conf": { + "additionalProperties": false, + "description": "Conf overrides the configuration for the default OTel Agent Gateway.\nThis must point to a ConfigMap containing a valid OTel collector configuration.\nWhen passing a configmap, file name *must* be otel-gateway-config.yaml.", + "properties": { + "configData": { + "description": "ConfigData corresponds to the configuration file content.", + "type": "string" + }, + "configMap": { + "additionalProperties": false, + "description": "ConfigMap references an existing ConfigMap with the configuration file content.", + "properties": { + "items": { + "description": "Items maps a ConfigMap data `key` to a file `path` mount.", + "items": { + "additionalProperties": false, + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.", + "type": "string" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "key" + ], + "x-kubernetes-list-type": "map" + }, + "name": { + "description": "Name is the name of the ConfigMap.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "description": "Enabled enables the OTel Agent Gateway.\nDefault: false", + "type": "boolean" + }, + "ports": { + "description": "Ports contains the ports that the OTel Collector is listening on.\nDefaults: otel-grpc:4317 / otel-http:4318.", + "items": { + "additionalProperties": false, + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address.\nThis must be a valid port number, 0 \u003c x \u003c 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host.\nIf specified, this must be a valid port number, 0 \u003c x \u003c 65536.\nIf HostNetwork is specified, this must match ContainerPort.\nMost containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\nnamed port in a pod must have a unique name. Name for the port that can be\nreferred to by services.", + "type": "string" + }, + "protocol": { + "default": "TCP", + "description": "Protocol for port. Must be UDP, TCP, or SCTP.\nDefaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, "otelCollector": { "additionalProperties": false, "description": "OtelCollector configuration.", @@ -9690,6 +9793,109 @@ }, "type": "object" }, + "otelAgentGateway": { + "additionalProperties": false, + "description": "OtelAgentGateway configuration.", + "properties": { + "conf": { + "additionalProperties": false, + "description": "Conf overrides the configuration for the default OTel Agent Gateway.\nThis must point to a ConfigMap containing a valid OTel collector configuration.\nWhen passing a configmap, file name *must* be otel-gateway-config.yaml.", + "properties": { + "configData": { + "description": "ConfigData corresponds to the configuration file content.", + "type": "string" + }, + "configMap": { + "additionalProperties": false, + "description": "ConfigMap references an existing ConfigMap with the configuration file content.", + "properties": { + "items": { + "description": "Items maps a ConfigMap data `key` to a file `path` mount.", + "items": { + "additionalProperties": false, + "description": "Maps a string key to a path within a volume.", + "properties": { + "key": { + "description": "key is the key to project.", + "type": "string" + }, + "mode": { + "description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.", + "format": "int32", + "type": "integer" + }, + "path": { + "description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.", + "type": "string" + } + }, + "required": [ + "key", + "path" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "key" + ], + "x-kubernetes-list-type": "map" + }, + "name": { + "description": "Name is the name of the ConfigMap.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "enabled": { + "description": "Enabled enables the OTel Agent Gateway.\nDefault: false", + "type": "boolean" + }, + "ports": { + "description": "Ports contains the ports that the OTel Collector is listening on.\nDefaults: otel-grpc:4317 / otel-http:4318.", + "items": { + "additionalProperties": false, + "description": "ContainerPort represents a network port in a single container.", + "properties": { + "containerPort": { + "description": "Number of port to expose on the pod's IP address.\nThis must be a valid port number, 0 \u003c x \u003c 65536.", + "format": "int32", + "type": "integer" + }, + "hostIP": { + "description": "What host IP to bind the external port to.", + "type": "string" + }, + "hostPort": { + "description": "Number of port to expose on the host.\nIf specified, this must be a valid port number, 0 \u003c x \u003c 65536.\nIf HostNetwork is specified, this must match ContainerPort.\nMost containers do not need this.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "If specified, this must be an IANA_SVC_NAME and unique within the pod. Each\nnamed port in a pod must have a unique name. Name for the port that can be\nreferred to by services.", + "type": "string" + }, + "protocol": { + "default": "TCP", + "description": "Protocol for port. Must be UDP, TCP, or SCTP.\nDefaults to \"TCP\".", + "type": "string" + } + }, + "required": [ + "containerPort" + ], + "type": "object" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, "otelCollector": { "additionalProperties": false, "description": "OtelCollector configuration.", diff --git a/docs/configuration.v2alpha1.md b/docs/configuration.v2alpha1.md index d97b29d49..44f642944 100644 --- a/docs/configuration.v2alpha1.md +++ b/docs/configuration.v2alpha1.md @@ -154,6 +154,11 @@ spec: | features.orchestratorExplorer.enabled | Enables the Orchestrator Explorer. Default: true | | features.orchestratorExplorer.extraTags | Additional tags to associate with the collected data in the form of `a b c`. This is a Cluster Agent option distinct from DD_TAGS that is used in the Orchestrator Explorer. | | features.orchestratorExplorer.scrubContainers | ScrubContainers enables scrubbing of sensitive container data (passwords, tokens, etc. ). Default: true | +| features.otelAgentGateway.conf.configData | ConfigData corresponds to the configuration file content. | +| features.otelAgentGateway.conf.configMap.items | Maps a ConfigMap data `key` to a file `path` mount. | +| features.otelAgentGateway.conf.configMap.name | Is the name of the ConfigMap. | +| features.otelAgentGateway.enabled | Enables the OTel Agent Gateway. Default: false | +| features.otelAgentGateway.ports | Contains the ports that the OTel Collector is listening on. Defaults: otel-grpc:4317 / otel-http:4318. | | features.otelCollector.conf.configData | ConfigData corresponds to the configuration file content. | | features.otelCollector.conf.configMap.items | Maps a ConfigMap data `key` to a file `path` mount. | | features.otelCollector.conf.configMap.name | Is the name of the ConfigMap. | diff --git a/docs/configuration_public.md b/docs/configuration_public.md index ea29e0c2a..c6d11ffa8 100644 --- a/docs/configuration_public.md +++ b/docs/configuration_public.md @@ -312,6 +312,21 @@ spec: `features.orchestratorExplorer.scrubContainers` : ScrubContainers enables scrubbing of sensitive container data (passwords, tokens, etc. ). Default: true +`features.otelAgentGateway.conf.configData` +: ConfigData corresponds to the configuration file content. + +`features.otelAgentGateway.conf.configMap.items` +: Maps a ConfigMap data `key` to a file `path` mount. + +`features.otelAgentGateway.conf.configMap.name` +: Is the name of the ConfigMap. + +`features.otelAgentGateway.enabled` +: Enables the OTel Agent Gateway. Default: false + +`features.otelAgentGateway.ports` +: Contains the ports that the OTel Collector is listening on. Defaults: otel-grpc:4317 / otel-http:4318. + `features.otelCollector` : OtelCollector configuration. See [link](https://docs.datadoghq.com/opentelemetry/setup/ddot_collector/install/kubernetes_daemonset/?tab=datadogoperator#overview) for more information.