From 4287f7d4ed93c1a538b84476a5a81e97630483d2 Mon Sep 17 00:00:00 2001 From: Fanny Jiang Date: Wed, 23 Oct 2024 17:29:11 -0400 Subject: [PATCH] fix values parsing --- tools/yaml-mapper/main.go | 31 ++- ...ping_datadog_helm_to_datadogagent_crd.yaml | 241 ++++++++++++++++++ 2 files changed, 266 insertions(+), 6 deletions(-) diff --git a/tools/yaml-mapper/main.go b/tools/yaml-mapper/main.go index 8e7eb93bf..b654493c4 100644 --- a/tools/yaml-mapper/main.go +++ b/tools/yaml-mapper/main.go @@ -98,6 +98,9 @@ func main() { interim := make(map[string]interface{}) interimMap := make(map[string]interface{}) + if updateMap { + interimMap = parseValues(sourceValues, make(map[string]interface{}), "") + } for sourceKey, sourceVal := range mappingValues { if updateMap { if sourceVal == nil { @@ -115,13 +118,9 @@ func main() { destKey, ok = mappingValues[sourceKey] rt := reflect.TypeOf(destKey) if !ok || destKey == "" || destKey == nil { - // If updating mapping, add unknown key to interimMap - if updateMap { - interimMap[sourceKey] = "" - continue - } // Continue through loop fmt.Printf("Warning: key not found: %s\n", sourceKey) + continue } else if rt.Kind() == reflect.Slice { // Provide support for the case where one source key may map to multiple destination keys for _, v := range destKey.([]interface{}) { @@ -177,6 +176,10 @@ func main() { fmt.Println(e) return } + newMapYaml = `# This file maps keys from the Datadog Helm chart (YAML) to the DatadogAgent CustomResource spec (YAML). + +` + newMapYaml + e = os.WriteFile(mappingFile, []byte(newMapYaml), 0660) if e != nil { fmt.Printf("Error updating default mapping yaml. %v", e) @@ -257,7 +260,7 @@ func downloadYaml(url string, name string) string { return "" } - tmpFile, err := os.CreateTemp("", fmt.Sprintf("%s.yaml*.", name)) + tmpFile, err := os.CreateTemp("", fmt.Sprintf("%s.yaml.*", name)) if err != nil { fmt.Printf("Error creating temporary file: %v\n", err) return "" @@ -274,3 +277,19 @@ func downloadYaml(url string, name string) string { return tmpFile.Name() } + +// TODO: fix handling deprecated helm values keys +// TODO: preserve comments + +func parseValues(sourceValues chartutil.Values, valuesMap map[string]interface{}, prefix string) map[string]interface{} { + for key, value := range sourceValues { + currentKey := prefix + key + valuesMap[currentKey] = "" + + // If the value is a map, recursive call to get nested keys. + if nestedMap, ok := value.(map[string]interface{}); ok { + parseValues(nestedMap, valuesMap, currentKey+".") + } + } + return valuesMap +} diff --git a/tools/yaml-mapper/mapping_datadog_helm_to_datadogagent_crd.yaml b/tools/yaml-mapper/mapping_datadog_helm_to_datadogagent_crd.yaml index 325d54f3b..e891ee4d7 100644 --- a/tools/yaml-mapper/mapping_datadog_helm_to_datadogagent_crd.yaml +++ b/tools/yaml-mapper/mapping_datadog_helm_to_datadogagent_crd.yaml @@ -1,15 +1,37 @@ +# This file maps keys from the Datadog Helm chart (YAML) to the DatadogAgent CustomResource spec (YAML). + +agents: "" agents.additionalLabels: spec.override.nodeAgent.labels agents.affinity: spec.override.nodeAgent.affinity +agents.containers: "" +agents.containers.agent: "" agents.containers.agent.env: spec.override.nodeAgent.containers.agent.env agents.containers.agent.envDict: "" agents.containers.agent.envFrom: "" agents.containers.agent.healthPort: spec.override.nodeAgent.containers.agent.healthPort agents.containers.agent.livenessProbe: spec.override.nodeAgent.containers.agent.livenessProbe +agents.containers.agent.livenessProbe.failureThreshold: "" +agents.containers.agent.livenessProbe.initialDelaySeconds: "" +agents.containers.agent.livenessProbe.periodSeconds: "" +agents.containers.agent.livenessProbe.successThreshold: "" +agents.containers.agent.livenessProbe.timeoutSeconds: "" agents.containers.agent.logLevel: spec.override.nodeAgent.containers.agent.logLevel agents.containers.agent.ports: "" agents.containers.agent.readinessProbe: spec.override.nodeAgent.containers.agent.readinessProbe +agents.containers.agent.readinessProbe.failureThreshold: "" +agents.containers.agent.readinessProbe.initialDelaySeconds: "" +agents.containers.agent.readinessProbe.periodSeconds: "" +agents.containers.agent.readinessProbe.successThreshold: "" +agents.containers.agent.readinessProbe.timeoutSeconds: "" agents.containers.agent.resources: spec.override.nodeAgent.containers.agent.resources agents.containers.agent.securityContext: spec.override.nodeAgent.containers.agent.securityContext +agents.containers.agent.startupProbe: "" +agents.containers.agent.startupProbe.failureThreshold: "" +agents.containers.agent.startupProbe.initialDelaySeconds: "" +agents.containers.agent.startupProbe.periodSeconds: "" +agents.containers.agent.startupProbe.successThreshold: "" +agents.containers.agent.startupProbe.timeoutSeconds: "" +agents.containers.initContainers: "" agents.containers.initContainers.resources: - spec.override.nodeAgent.containers.init-config.resources - spec.override.nodeAgent.containers.init-volume.resources @@ -22,6 +44,14 @@ agents.containers.initContainers.volumeMounts: - spec.override.nodeAgent.containers.init-config.volumeMounts - spec.override.nodeAgent.containers.init-volume.volumeMounts - spec.override.clusterChecksRunner.containers.init-config.volumeMounts +agents.containers.otelAgent: "" +agents.containers.otelAgent.env: "" +agents.containers.otelAgent.envDict: "" +agents.containers.otelAgent.envFrom: "" +agents.containers.otelAgent.ports: "" +agents.containers.otelAgent.resources: "" +agents.containers.otelAgent.securityContext: "" +agents.containers.processAgent: "" agents.containers.processAgent.env: spec.override.nodeAgent.containers.process-agent.env agents.containers.processAgent.envDict: "" agents.containers.processAgent.envFrom: "" @@ -29,12 +59,14 @@ agents.containers.processAgent.logLevel: spec.override.nodeAgent.containers.proc agents.containers.processAgent.ports: "" agents.containers.processAgent.resources: spec.override.nodeAgent.containers.process-agent.resources agents.containers.processAgent.securityContext: spec.override.nodeAgent.containers.process-agent.securityContext +agents.containers.securityAgent: "" agents.containers.securityAgent.env: spec.override.nodeAgent.containers.security-agent.env agents.containers.securityAgent.envDict: "" agents.containers.securityAgent.envFrom: "" agents.containers.securityAgent.logLevel: spec.override.nodeAgent.containers.security-agent.logLevel agents.containers.securityAgent.ports: "" agents.containers.securityAgent.resources: spec.override.nodeAgent.containers.security-agent.resources +agents.containers.systemProbe: "" agents.containers.systemProbe.env: spec.override.nodeAgent.containers.system-probe.env agents.containers.systemProbe.envDict: "" agents.containers.systemProbe.envFrom: "" @@ -42,10 +74,17 @@ agents.containers.systemProbe.logLevel: spec.override.nodeAgent.containers.syste agents.containers.systemProbe.ports: "" agents.containers.systemProbe.resources: spec.override.nodeAgent.containers.system-probe.resources agents.containers.systemProbe.securityContext: spec.override.nodeAgent.containers.system-probe.securityContext +agents.containers.systemProbe.securityContext.capabilities: "" +agents.containers.systemProbe.securityContext.capabilities.add: "" +agents.containers.systemProbe.securityContext.privileged: "" +agents.containers.traceAgent: "" agents.containers.traceAgent.env: spec.override.nodeAgent.containers.trace-agent.env agents.containers.traceAgent.envDict: "" agents.containers.traceAgent.envFrom: "" agents.containers.traceAgent.livenessProbe: spec.override.nodeAgent.containers.trace-agent.livenessProbe +agents.containers.traceAgent.livenessProbe.initialDelaySeconds: "" +agents.containers.traceAgent.livenessProbe.periodSeconds: "" +agents.containers.traceAgent.livenessProbe.timeoutSeconds: "" agents.containers.traceAgent.logLevel: spec.override.nodeAgent.containers.trace-agent.logLevel agents.containers.traceAgent.ports: "" agents.containers.traceAgent.resources: spec.override.nodeAgent.containers.trace-agent.resources @@ -54,6 +93,7 @@ agents.customAgentConfig: spec.override.nodeAgent.customConfigurations.datadog.y agents.daemonsetAnnotations: "" agents.dnsConfig: "" agents.enabled: "" +agents.image: "" agents.image.digest: "" agents.image.doNotCheckTag: "" agents.image.name: spec.override.nodeAgent.image.name @@ -62,26 +102,40 @@ agents.image.pullSecrets: spec.override.nodeAgent.image.pullSecrets agents.image.repository: "" agents.image.tag: spec.override.nodeAgent.image.tag agents.image.tagSuffix: "" +agents.localService: "" agents.localService.forceLocalServiceEnabled: spec.global.localService.forceEnableLocalService agents.localService.overrideName: spec.global.localService.nameOverride +agents.networkPolicy: "" +agents.networkPolicy.create: "" agents.nodeSelector: spec.override.nodeAgent.nodeSelector agents.podAnnotations: spec.override.nodeAgent.annotations agents.podLabels: "" +agents.podSecurity: "" agents.podSecurity.allowedUnsafeSysctls: "" +agents.podSecurity.apparmor: "" agents.podSecurity.apparmor.enabled: "" agents.podSecurity.apparmorProfiles: "" agents.podSecurity.capabilities: "" agents.podSecurity.defaultApparmor: "" +agents.podSecurity.podSecurityPolicy: "" agents.podSecurity.podSecurityPolicy.create: "" agents.podSecurity.privileged: "" agents.podSecurity.seLinuxContext: "" +agents.podSecurity.seLinuxContext.rule: "" +agents.podSecurity.seLinuxContext.seLinuxOptions: "" +agents.podSecurity.seLinuxContext.seLinuxOptions.level: "" +agents.podSecurity.seLinuxContext.seLinuxOptions.role: "" +agents.podSecurity.seLinuxContext.seLinuxOptions.type: "" +agents.podSecurity.seLinuxContext.seLinuxOptions.user: "" agents.podSecurity.seccompProfiles: "" +agents.podSecurity.securityContextConstraints: "" agents.podSecurity.securityContextConstraints.create: "" agents.podSecurity.volumes: "" agents.priorityClassCreate: "" agents.priorityClassName: spec.override.nodeAgent.priorityClassName agents.priorityClassValue: "" agents.priorityPreemptionPolicyValue: "" +agents.rbac: "" agents.rbac.automountServiceAccountToken: "" agents.rbac.create: spec.override.nodeAgent.createRbac agents.rbac.serviceAccountAnnotations: "" @@ -90,6 +144,9 @@ agents.revisionHistoryLimit: "" agents.shareProcessNamespace: "" agents.tolerations: spec.override.nodeAgent.tolerations agents.updateStrategy: "" +agents.updateStrategy.rollingUpdate: "" +agents.updateStrategy.rollingUpdate.maxUnavailable: "" +agents.updateStrategy.type: "" agents.useConfigMap: "" agents.useHostNetwork: spec.override.nodeAgent.hostNetwork agents.volumeMounts: @@ -99,20 +156,41 @@ agents.volumeMounts: - spec.override.nodeAgent.containers.system-probe.volumeMounts - spec.override.nodeAgent.containers.security-agent.volumeMounts agents.volumes: spec.override.nodeAgent.volumes +clusterAgent: "" clusterAgent.additionalLabels: spec.override.clusterAgent.labels +clusterAgent.admissionController: "" +clusterAgent.admissionController.agentSidecarInjection: "" +clusterAgent.admissionController.agentSidecarInjection.clusterAgentCommunicationEnabled: "" +clusterAgent.admissionController.agentSidecarInjection.containerRegistry: "" +clusterAgent.admissionController.agentSidecarInjection.enabled: "" +clusterAgent.admissionController.agentSidecarInjection.imageName: "" +clusterAgent.admissionController.agentSidecarInjection.imageTag: "" +clusterAgent.admissionController.agentSidecarInjection.profiles: "" +clusterAgent.admissionController.agentSidecarInjection.provider: "" +clusterAgent.admissionController.agentSidecarInjection.selectors: "" clusterAgent.admissionController.configMode: spec.features.admissionController.agentCommunicationMode +clusterAgent.admissionController.containerRegistry: "" clusterAgent.admissionController.enabled: spec.features.admissionController.enabled clusterAgent.admissionController.failurePolicy: spec.features.admissionController.failurePolicy clusterAgent.admissionController.mutateUnlabelled: spec.features.admissionController.mutateUnlabelled clusterAgent.admissionController.port: "" +clusterAgent.admissionController.remoteInstrumentation: "" clusterAgent.admissionController.remoteInstrumentation.enabled: "" clusterAgent.admissionController.webhookName: spec.features.admissionController.webhookName clusterAgent.advancedConfd: "" clusterAgent.affinity: spec.override.clusterAgent.affinity clusterAgent.command: spec.override.clusterAgent.containers.cluster-agent.command clusterAgent.confd: spec.override.clusterAgent.extraConfd +clusterAgent.containerExclude: "" +clusterAgent.containerInclude: "" +clusterAgent.containers: "" +clusterAgent.containers.clusterAgent: "" clusterAgent.containers.clusterAgent.securityContext: "" +clusterAgent.containers.clusterAgent.securityContext.allowPrivilegeEscalation: "" +clusterAgent.containers.clusterAgent.securityContext.readOnlyRootFilesystem: "" clusterAgent.containers.initContainer.securityContext: spec.override.clusterAgent.containers.init-config.securityContext +clusterAgent.containers.initContainers: "" +clusterAgent.containers.initContainers.securityContext: "" clusterAgent.createPodDisruptionBudget: "" clusterAgent.datadog_cluster_yaml: spec.override.clusterAgent.customConfigurations.datadog-cluster.yaml.configData clusterAgent.deploymentAnnotations: "" @@ -122,6 +200,7 @@ clusterAgent.env: spec.override.clusterAgent.env clusterAgent.envDict: "" clusterAgent.envFrom: "" clusterAgent.healthPort: spec.override.clusterAgent.containers.cluster-agent.healthPort +clusterAgent.image: "" clusterAgent.image.digest: "" clusterAgent.image.doNotCheckTag: "" clusterAgent.image.name: spec.override.clusterAgent.image.name @@ -130,32 +209,60 @@ clusterAgent.image.pullSecrets: spec.override.clusterAgent.image.pullSecrets clusterAgent.image.repository: "" clusterAgent.image.tag: spec.override.clusterAgent.image.tag clusterAgent.livenessProbe: spec.override.clusterAgent.containers.cluster-agent.livenessProbe +clusterAgent.livenessProbe.failureThreshold: "" +clusterAgent.livenessProbe.initialDelaySeconds: "" +clusterAgent.livenessProbe.periodSeconds: "" +clusterAgent.livenessProbe.successThreshold: "" +clusterAgent.livenessProbe.timeoutSeconds: "" +clusterAgent.metricsProvider: "" clusterAgent.metricsProvider.aggregator: "" clusterAgent.metricsProvider.createReaderRbac: "" clusterAgent.metricsProvider.enabled: spec.features.externalMetricsServer.enabled clusterAgent.metricsProvider.endpoint: spec.features.externalMetricsServer.endpoint clusterAgent.metricsProvider.registerAPIService: spec.features.externalMetricsServer.registerAPIService +clusterAgent.metricsProvider.service: "" clusterAgent.metricsProvider.service.port: spec.features.externalMetricsServer.port clusterAgent.metricsProvider.service.type: "" clusterAgent.metricsProvider.useDatadogMetrics: spec.features.externalMetricsServer.useDatadogMetrics clusterAgent.metricsProvider.wpaController: spec.features.externalMetricsServer.wpaController +clusterAgent.networkPolicy: "" +clusterAgent.networkPolicy.create: "" clusterAgent.nodeSelector: spec.override.clusterAgent.nodeSelector clusterAgent.podAnnotations: spec.override.clusterAgent.annotations +clusterAgent.podSecurity: "" +clusterAgent.podSecurity.podSecurityPolicy: "" clusterAgent.podSecurity.podSecurityPolicy.create: "" +clusterAgent.podSecurity.securityContextConstraints: "" clusterAgent.podSecurity.securityContextConstraints.create: "" clusterAgent.priorityClassName: spec.override.clusterAgent.priorityClassName +clusterAgent.rbac: "" clusterAgent.rbac.automountServiceAccountToken: "" clusterAgent.rbac.create: spec.override.clusterAgent.createRbac clusterAgent.rbac.flareAdditionalPermissions: "" clusterAgent.rbac.serviceAccountAnnotations: "" clusterAgent.rbac.serviceAccountName: spec.override.clusterAgent.serviceAccountName clusterAgent.readinessProbe: spec.override.clusterAgent.containers.cluster-agent.readinessProbe +clusterAgent.readinessProbe.failureThreshold: "" +clusterAgent.readinessProbe.initialDelaySeconds: "" +clusterAgent.readinessProbe.periodSeconds: "" +clusterAgent.readinessProbe.successThreshold: "" +clusterAgent.readinessProbe.timeoutSeconds: "" clusterAgent.replicas: spec.override.clusterAgent.replicas clusterAgent.resources: spec.override.clusterAgent.containers.cluster-agent.resources clusterAgent.revisionHistoryLimit: "" clusterAgent.securityContext: "" clusterAgent.shareProcessNamespace: "" +clusterAgent.startupProbe: "" +clusterAgent.startupProbe.failureThreshold: "" +clusterAgent.startupProbe.initialDelaySeconds: "" +clusterAgent.startupProbe.periodSeconds: "" +clusterAgent.startupProbe.successThreshold: "" +clusterAgent.startupProbe.timeoutSeconds: "" clusterAgent.strategy: "" +clusterAgent.strategy.rollingUpdate: "" +clusterAgent.strategy.rollingUpdate.maxSurge: "" +clusterAgent.strategy.rollingUpdate.maxUnavailable: "" +clusterAgent.strategy.type: "" clusterAgent.token: spec.global.clusterAgentToken clusterAgent.tokenExistingSecret: spec.global.clusterAgentTokenSecret clusterAgent.tolerations: spec.override.clusterAgent.tolerations @@ -163,6 +270,7 @@ clusterAgent.topologySpreadConstraints: "" clusterAgent.useHostNetwork: "" clusterAgent.volumeMounts: spec.override.clusterAgent.containers.cluster-agent.volumeMounts clusterAgent.volumes: spec.override.clusterAgent.volumes +clusterChecksRunner: "" clusterChecksRunner.additionalLabels: spec.override.clusterChecksRunner.labels clusterChecksRunner.affinity: spec.override.clusterChecksRunner.affinity clusterChecksRunner.createPodDisruptionBudget: "" @@ -173,6 +281,7 @@ clusterChecksRunner.env: spec.override.clusterChecksRunner.env clusterChecksRunner.envDict: "" clusterChecksRunner.envFrom: "" clusterChecksRunner.healthPort: spec.override.clusterChecksRunner.containers.agent.healthPort +clusterChecksRunner.image: "" clusterChecksRunner.image.digest: "" clusterChecksRunner.image.name: spec.override.clusterChecksRunner.image.name clusterChecksRunner.image.pullPolicy: spec.override.clusterChecksRunner.image.pullPolicy @@ -181,56 +290,107 @@ clusterChecksRunner.image.repository: "" clusterChecksRunner.image.tag: spec.override.clusterChecksRunner.image.tag clusterChecksRunner.image.tagSuffix: "" clusterChecksRunner.livenessProbe: spec.override.clusterChecksRunner.containers.agent.livenessProbe +clusterChecksRunner.livenessProbe.failureThreshold: "" +clusterChecksRunner.livenessProbe.initialDelaySeconds: "" +clusterChecksRunner.livenessProbe.periodSeconds: "" +clusterChecksRunner.livenessProbe.successThreshold: "" +clusterChecksRunner.livenessProbe.timeoutSeconds: "" +clusterChecksRunner.networkPolicy: "" +clusterChecksRunner.networkPolicy.create: "" clusterChecksRunner.nodeSelector: spec.override.clusterChecksRunner.nodeSelector clusterChecksRunner.podAnnotations: spec.override.clusterChecksRunner.annotations clusterChecksRunner.ports: "" clusterChecksRunner.priorityClassName: spec.override.clusterChecksRunner.priorityClassName +clusterChecksRunner.rbac: "" clusterChecksRunner.rbac.automountServiceAccountToken: "" clusterChecksRunner.rbac.create: spec.override.clusterChecksRunner.createRbac clusterChecksRunner.rbac.dedicated: "" clusterChecksRunner.rbac.serviceAccountAnnotations: "" clusterChecksRunner.rbac.serviceAccountName: spec.override.clusterChecksRunner.serviceAccountName clusterChecksRunner.readinessProbe: spec.override.clusterChecksRunner.containers.agent.readinessProbe +clusterChecksRunner.readinessProbe.failureThreshold: "" +clusterChecksRunner.readinessProbe.initialDelaySeconds: "" +clusterChecksRunner.readinessProbe.periodSeconds: "" +clusterChecksRunner.readinessProbe.successThreshold: "" +clusterChecksRunner.readinessProbe.timeoutSeconds: "" clusterChecksRunner.replicas: spec.override.clusterChecksRunner.replicas clusterChecksRunner.resources: spec.override.clusterChecksRunner.containers.agent.resources clusterChecksRunner.revisionHistoryLimit: "" clusterChecksRunner.securityContext: spec.override.clusterChecksRunner.securityContext +clusterChecksRunner.startupProbe: "" +clusterChecksRunner.startupProbe.failureThreshold: "" +clusterChecksRunner.startupProbe.initialDelaySeconds: "" +clusterChecksRunner.startupProbe.periodSeconds: "" +clusterChecksRunner.startupProbe.successThreshold: "" +clusterChecksRunner.startupProbe.timeoutSeconds: "" clusterChecksRunner.strategy: "" +clusterChecksRunner.strategy.rollingUpdate: "" +clusterChecksRunner.strategy.rollingUpdate.maxSurge: "" +clusterChecksRunner.strategy.rollingUpdate.maxUnavailable: "" +clusterChecksRunner.strategy.type: "" clusterChecksRunner.tolerations: spec.override.clusterChecksRunner.tolerations clusterChecksRunner.topologySpreadConstraints: "" clusterChecksRunner.volumeMounts: spec.override.clusterChecksRunner.containers.agent.volumeMounts clusterChecksRunner.volumes: spec.override.clusterChecksRunner.volumes commonLabels: "" +datadog: "" +datadog-crds: "" +datadog-crds.crds: "" datadog-crds.crds.datadogMetrics: "" +datadog-crds.crds.datadogPodAutoscalers: "" datadog.apiKey: spec.global.credentials.apiKey datadog.apiKeyExistingSecret: spec.global.credentials.apiSecret +datadog.apm: "" +datadog.apm.enabled: "" datadog.apm.hostSocketPath: spec.features.apm.unixDomainSocketConfig.path +datadog.apm.instrumentation: "" +datadog.apm.instrumentation.disabledNamespaces: "" +datadog.apm.instrumentation.enabled: "" +datadog.apm.instrumentation.enabledNamespaces: "" +datadog.apm.instrumentation.language_detection: "" +datadog.apm.instrumentation.language_detection.enabled: "" +datadog.apm.instrumentation.libVersions: "" +datadog.apm.instrumentation.skipKPITelemetry: "" datadog.apm.port: spec.features.apm.hostPortConfig.hostPort datadog.apm.portEnabled: spec.features.apm.hostPortConfig.enabled datadog.apm.socketEnabled: spec.features.apm.enabled datadog.apm.socketPath: "" +datadog.apm.useSocketVolume: "" datadog.appKey: spec.global.credentials.appKey datadog.appKeyExistingSecret: spec.global.credentials.appSecret +datadog.asm: "" +datadog.asm.iast: "" +datadog.asm.iast.enabled: "" +datadog.asm.sca: "" +datadog.asm.sca.enabled: "" +datadog.asm.threats: "" +datadog.asm.threats.enabled: "" datadog.checksCardinality: "" datadog.checksd: spec.override.nodeAgent.extraChecksd +datadog.clusterChecks: "" datadog.clusterChecks.enabled: spec.features.clusterChecks.enabled datadog.clusterChecks.shareProcessNamespace: "" datadog.clusterName: spec.global.clusterName +datadog.clusterTagger: "" datadog.clusterTagger.collectKubernetesTags: "" datadog.collectEvents: spec.features.eventCollection.collectKubernetesEvents datadog.confd: spec.override.nodeAgent.extraConfd datadog.containerExclude: "" datadog.containerExcludeLogs: "" datadog.containerExcludeMetrics: "" +datadog.containerImageCollection: "" datadog.containerImageCollection.enabled: "" datadog.containerInclude: "" datadog.containerIncludeLogs: "" datadog.containerIncludeMetrics: "" +datadog.containerLifecycle: "" datadog.containerLifecycle.enabled: "" +datadog.containerRuntimeSupport: "" datadog.containerRuntimeSupport.enabled: "" datadog.criSocketPath: spec.global.criSocketPath datadog.dd_url: spec.endpoint.url datadog.dockerSocketPath: spec.global.dockerSocketPath +datadog.dogstatsd: "" datadog.dogstatsd.hostSocketPath: "" datadog.dogstatsd.nonLocalTraffic: "" datadog.dogstatsd.originDetection: spec.features.dogstatsd.originDetectionEnabled @@ -238,6 +398,7 @@ datadog.dogstatsd.port: "" datadog.dogstatsd.socketPath: spec.features.dogstatsd.unixDomainSocketConfig.path datadog.dogstatsd.tagCardinality: spec.features.dogstatsd.tagCardinality datadog.dogstatsd.tags: "" +datadog.dogstatsd.useHostPID: "" datadog.dogstatsd.useHostPort: spec.features.dogstatsd.hostPortConfig.enabled datadog.dogstatsd.useSocketVolume: spec.features.dogstatsd.unixDomainSocketConfig.enabled datadog.env: spec.override.nodeAgent.env @@ -245,11 +406,13 @@ datadog.envDict: "" datadog.envFrom: "" datadog.excludePauseContainer: "" datadog.expvarPort: "" +datadog.helmCheck: "" datadog.helmCheck.collectEvents: "" datadog.helmCheck.enabled: "" datadog.helmCheck.valuesAsTags: "" datadog.hostVolumeMountPropagation: "" datadog.ignoreAutoConfig: "" +datadog.kubeStateMetricsCore: "" datadog.kubeStateMetricsCore.annotationsAsTags: "" datadog.kubeStateMetricsCore.collectApiServicesMetrics: "" datadog.kubeStateMetricsCore.collectConfigMaps: "" @@ -259,18 +422,26 @@ datadog.kubeStateMetricsCore.collectVpaMetrics: "" datadog.kubeStateMetricsCore.enabled: spec.features.kubeStateMetricsCore.enabled datadog.kubeStateMetricsCore.ignoreLegacyKSMCheck: "" datadog.kubeStateMetricsCore.labelsAsTags: "" +datadog.kubeStateMetricsCore.rbac: "" datadog.kubeStateMetricsCore.rbac.create: "" datadog.kubeStateMetricsCore.useClusterCheckRunners: "" datadog.kubeStateMetricsEnabled: "" +datadog.kubeStateMetricsNetworkPolicy: "" datadog.kubeStateMetricsNetworkPolicy.create: "" +datadog.kubelet: "" datadog.kubelet.agentCAPath: spec.global.kubelet.agentCAPath datadog.kubelet.coreCheckEnabled: "" datadog.kubelet.host: spec.global.kubelet.host +datadog.kubelet.host.valueFrom: "" +datadog.kubelet.host.valueFrom.fieldRef: "" +datadog.kubelet.host.valueFrom.fieldRef.fieldPath: "" datadog.kubelet.hostCAPath: spec.global.kubelet.hostCAPath datadog.kubelet.podLogsPath: "" datadog.kubelet.tlsVerify: spec.global.kubelet.tlsVerify +datadog.kubernetesEvents: "" datadog.kubernetesEvents.collectedEventTypes: "" datadog.kubernetesEvents.filteringEnabled: "" +datadog.kubernetesEvents.sourceDetectionEnabled: "" datadog.kubernetesEvents.unbundleEvents: "" datadog.kubernetesResourcesAnnotationsAsTags: spec.global.kubernetesResourcesAnnotationsAsTags datadog.kubernetesResourcesLabelsAsTags: spec.global.kubernetesResourcesLabelsAsTags @@ -278,66 +449,116 @@ datadog.leaderElection: "" datadog.leaderElectionResource: "" datadog.leaderLeaseDuration: "" datadog.logLevel: spec.global.logLevel +datadog.logs: "" datadog.logs.autoMultiLineDetection: "" datadog.logs.containerCollectAll: spec.features.logCollection.containerCollectAll datadog.logs.containerCollectUsingFiles: spec.features.logCollection.containerCollectUsingFiles datadog.logs.enabled: spec.features.logCollection.enabled datadog.namespaceAnnotationsAsTags: spec.global.namespaceAnnotationsAsTags datadog.namespaceLabelsAsTags: spec.global.namespaceLabelsAsTags +datadog.networkMonitoring: "" datadog.networkMonitoring.enabled: spec.features.npm.enabled +datadog.networkPolicy: "" +datadog.networkPolicy.cilium: "" datadog.networkPolicy.cilium.dnsSelector: spec.global.networkPolicy.dnsSelectorEndpoints +datadog.networkPolicy.cilium.dnsSelector.toEndpoints: "" datadog.networkPolicy.create: spec.global.networkPolicy.create datadog.networkPolicy.flavor: spec.global.networkPolicy.flavor datadog.nodeLabelsAsTags: spec.global.nodeLabelsAsTags +datadog.orchestratorExplorer: "" +datadog.orchestratorExplorer.container_scrubbing: "" datadog.orchestratorExplorer.container_scrubbing.enabled: spec.features.orchestratorExplorer.scrubContainers datadog.orchestratorExplorer.customResources: spec.features.orchestratorExplorer.customResources datadog.orchestratorExplorer.enabled: spec.features.orchestratorExplorer.enabled +datadog.originDetectionUnified: "" datadog.originDetectionUnified.enabled: spec.global.originDetectionUnified.enabled datadog.osReleasePath: "" +datadog.otelCollector: "" +datadog.otelCollector.config: "" +datadog.otelCollector.enabled: "" +datadog.otelCollector.ports: "" +datadog.otlp: "" +datadog.otlp.logs: "" +datadog.otlp.logs.enabled: "" +datadog.otlp.receiver: "" +datadog.otlp.receiver.protocols: "" +datadog.otlp.receiver.protocols.grpc: "" datadog.otlp.receiver.protocols.grpc.enabled: spec.features.otlp.receiver.protocols.grpc.enabled datadog.otlp.receiver.protocols.grpc.endpoint: spec.features.otlp.receiver.protocols.grpc.endpoint datadog.otlp.receiver.protocols.grpc.useHostPort: "" +datadog.otlp.receiver.protocols.http: "" datadog.otlp.receiver.protocols.http.enabled: spec.features.otlp.receiver.protocols.http.enabled datadog.otlp.receiver.protocols.http.endpoint: spec.features.otlp.receiver.protocols.http.endpoint datadog.otlp.receiver.protocols.http.useHostPort: "" datadog.podAnnotationsAsTags: spec.global.podAnnotationsAsTags datadog.podLabelsAsTags: spec.global.podLabelsAsTags +datadog.processAgent: "" +datadog.processAgent.containerCollection: "" datadog.processAgent.enabled: "" datadog.processAgent.processCollection: "" datadog.processAgent.processDiscovery: spec.features.processDiscovery.enabled +datadog.processAgent.runInCoreAgent: "" datadog.processAgent.stripProcessArguments: spec.features.liveProcessCollection.stripProcessArguments +datadog.profiling: "" +datadog.profiling.enabled: "" +datadog.prometheusScrape: "" datadog.prometheusScrape.additionalConfigs: spec.features.prometheusScrape.additionalConfigs datadog.prometheusScrape.enabled: spec.features.prometheusScrape.enabled datadog.prometheusScrape.serviceEndpoints: spec.features.prometheusScrape.enableServiceEndpoints datadog.prometheusScrape.version: spec.features.prometheusScrape.version +datadog.remoteConfiguration: "" datadog.remoteConfiguration.enabled: spec.features.remoteConfiguration.enabled +datadog.sbom: "" +datadog.sbom.containerImage: "" datadog.sbom.containerImage.enabled: spec.features.sbom.containerImage.enabled +datadog.sbom.containerImage.uncompressedLayersSupport: "" +datadog.sbom.host: "" datadog.sbom.host.enabled: spec.features.sbom.host.enabled datadog.secretAnnotations: "" +datadog.secretBackend: "" datadog.secretBackend.arguments: "" datadog.secretBackend.command: "" datadog.secretBackend.enableGlobalPermissions: "" datadog.secretBackend.roles: "" datadog.secretBackend.timeout: "" +datadog.securityAgent: "" +datadog.securityAgent.compliance: "" datadog.securityAgent.compliance.checkInterval: "" datadog.securityAgent.compliance.configMap: spec.features.cspm.customBenchmarks.configMap datadog.securityAgent.compliance.enabled: spec.features.cspm.enabled +datadog.securityAgent.compliance.host_benchmarks: "" datadog.securityAgent.compliance.host_benchmarks.enabled: spec.features.cspm.hostBenchmarks.enabled +datadog.securityAgent.compliance.xccdf: "" +datadog.securityAgent.compliance.xccdf.enabled: "" +datadog.securityAgent.runtime: "" +datadog.securityAgent.runtime.activityDump: "" datadog.securityAgent.runtime.activityDump.cgroupDumpTimeout: "" datadog.securityAgent.runtime.activityDump.cgroupWaitListSize: "" datadog.securityAgent.runtime.activityDump.enabled: "" +datadog.securityAgent.runtime.activityDump.pathMerge: "" datadog.securityAgent.runtime.activityDump.pathMerge.enabled: "" datadog.securityAgent.runtime.activityDump.tracedCgroupsCount: "" datadog.securityAgent.runtime.enabled: spec.features.cws.enabled datadog.securityAgent.runtime.fimEnabled: "" +datadog.securityAgent.runtime.network: "" datadog.securityAgent.runtime.network.enabled: spec.features.cws.network.enabled +datadog.securityAgent.runtime.policies: "" datadog.securityAgent.runtime.policies.configMap: spec.features.cws.customPolicies.configMap +datadog.securityAgent.runtime.securityProfile: "" +datadog.securityAgent.runtime.securityProfile.anomalyDetection: "" +datadog.securityAgent.runtime.securityProfile.anomalyDetection.enabled: "" +datadog.securityAgent.runtime.securityProfile.autoSuppression: "" +datadog.securityAgent.runtime.securityProfile.autoSuppression.enabled: "" datadog.securityAgent.runtime.securityProfile.enabled: spec.features.cws.securityProfiles.enabled +datadog.securityAgent.runtime.syscallMonitor: "" datadog.securityAgent.runtime.syscallMonitor.enabled: spec.features.cws.syscallMonitorEnabled +datadog.securityAgent.runtime.useSecruntimeTrack: "" datadog.securityContext: spec.global.securityContext datadog.securityContext.runAsUser: "" +datadog.serviceMonitoring: "" datadog.serviceMonitoring.enabled: spec.features.usm.enabled datadog.site: spec.global.site +datadog.systemProbe: "" datadog.systemProbe.apparmor: spec.override.nodeAgent.containers.system-probe.appArmorProfileName datadog.systemProbe.bpfDebug: "" datadog.systemProbe.btfPath: "" @@ -357,12 +578,15 @@ datadog.systemProbe.seccomp: "" datadog.systemProbe.seccompRoot: spec.override.nodeAgent.containers.system-probe.seccompConfig.customRootPath datadog.tags: spec.global.tags datadog.useHostPID: spec.override.nodeAgent.hostPID +existingClusterAgent: "" existingClusterAgent.clusterchecksEnabled: "" existingClusterAgent.join: "" existingClusterAgent.serviceName: "" existingClusterAgent.tokenSecretName: "" +fips: "" fips.customFipsConfig: "" fips.enabled: "" +fips.image: "" fips.image.digest: "" fips.image.name: "" fips.image.pullPolicy: "" @@ -374,11 +598,28 @@ fips.portRange: "" fips.resources: "" fips.use_https: "" fullnameOverride: "" +kube-state-metrics: "" +kube-state-metrics.image: "" +kube-state-metrics.image.repository: "" +kube-state-metrics.nodeSelector: "" +kube-state-metrics.nodeSelector.kubernetes.io/os: "" +kube-state-metrics.rbac: "" +kube-state-metrics.rbac.create: "" +kube-state-metrics.resources: "" +kube-state-metrics.serviceAccount: "" +kube-state-metrics.serviceAccount.create: "" +kube-state-metrics.serviceAccount.name: "" nameOverride: "" +providers: "" +providers.aks: "" providers.aks.enabled: "" +providers.eks: "" +providers.eks.ec2: "" providers.eks.ec2.useHostnameFromFile: "" +providers.gke: "" providers.gke.autopilot: "" providers.gke.cos: "" registry: spec.global.registry +remoteConfiguration: "" remoteConfiguration.enabled: spec.features.remoteConfiguration.enabled targetSystem: ""