@@ -186,7 +186,7 @@ func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi
186186 values .configureImagePullSecret (imgPullSecret )
187187 values .configureFakeintake (e , args .Fakeintake , args .DualShipping )
188188
189- defaultYAMLValues := values .toYAMLPulumiAssetOutput ()
189+ defaultYAMLValues := values .ToYAMLPulumiAssetOutput ()
190190
191191 var valuesYAML pulumi.AssetOrArchiveArray
192192 valuesYAML = append (valuesYAML , defaultYAMLValues )
@@ -233,7 +233,7 @@ func NewHelmInstallation(e config.Env, args HelmInstallationArgs, opts ...pulumi
233233 values := buildWindowsHelmValues (baseName , agentImagePath , agentImageTag , clusterAgentImagePath , clusterAgentImageTag )
234234 values .configureImagePullSecret (imgPullSecret )
235235 values .configureFakeintake (e , args .Fakeintake , args .DualShipping )
236- defaultYAMLValues := values .toYAMLPulumiAssetOutput ()
236+ defaultYAMLValues := values .ToYAMLPulumiAssetOutput ()
237237
238238 var windowsValuesYAML pulumi.AssetOrArchiveArray
239239 windowsValuesYAML = append (windowsValuesYAML , defaultYAMLValues )
@@ -680,6 +680,106 @@ func buildLinuxHelmValuesAutopilot(baseName, agentImagePath, agentImageTag, clus
680680 }
681681}
682682
683+ // BuildOpenShiftHelmValues returns Helm values for deploying the agent on OpenShift clusters.
684+ func BuildOpenShiftHelmValues () HelmValues {
685+ return HelmValues {
686+ "datadog" : pulumi.Map {
687+ "kubelet" : pulumi.Map {
688+ "tlsVerify" : pulumi .Bool (false ),
689+ },
690+ // https://docs.datadoghq.com/containers/troubleshooting/admission-controller/?tab=helm#openshift
691+ "apm" : pulumi.Map {
692+ "portEnabled" : pulumi .Bool (true ),
693+ },
694+ "sbom" : pulumi.Map {
695+ "containerImage" : pulumi.Map {
696+ "enabled" : pulumi .Bool (true ),
697+ "overlayFSDirectScan" : pulumi .Bool (true ),
698+ },
699+ },
700+ "criSocketPath" : pulumi .String ("/var/run/crio/crio.sock" ),
701+ "useHostPID" : pulumi .Bool (true ),
702+ "originDetectionUnified" : pulumi.Map {
703+ "enabled" : pulumi .Bool (true ),
704+ },
705+ "dogstatsd" : pulumi.Map {
706+ "originDetection" : pulumi .Bool (true ),
707+ "tagCardinality" : pulumi .String ("high" ),
708+ },
709+ },
710+ "agents" : pulumi.Map {
711+ "enabled" : pulumi .Bool (true ),
712+ "tolerations" : pulumi.MapArray {
713+ // Deploy Agents on master nodes
714+ pulumi.Map {
715+ "effect" : pulumi .String ("NoSchedule" ),
716+ "key" : pulumi .String ("node-role.kubernetes.io/master" ),
717+ "operator" : pulumi .String ("Exists" ),
718+ },
719+ // Deploy Agents on infra nodes
720+ pulumi.Map {
721+ "effect" : pulumi .String ("NoSchedule" ),
722+ "key" : pulumi .String ("node-role.kubernetes.io/infra" ),
723+ "operator" : pulumi .String ("Exists" ),
724+ },
725+ // Tolerate disk pressure
726+ pulumi.Map {
727+ "effect" : pulumi .String ("NoSchedule" ),
728+ "key" : pulumi .String ("node.kubernetes.io/disk-pressure" ),
729+ "operator" : pulumi .String ("Exists" ),
730+ },
731+ },
732+ "useHostNetwork" : pulumi .Bool (true ),
733+ "replicas" : pulumi .Int (1 ),
734+ "podSecurity" : pulumi.Map {
735+ "securityContextConstraints" : pulumi.Map {
736+ "create" : pulumi .Bool (true ),
737+ },
738+ },
739+ "volumeMounts" : pulumi.MapArray {
740+ pulumi.Map {
741+ "name" : pulumi .String ("trivycache" ),
742+ "mountPath" : pulumi .String ("/root/.cache/trivy" ),
743+ },
744+ pulumi.Map {
745+ "name" : pulumi .String ("imageoverlay" ),
746+ "mountPath" : pulumi .String ("/var/lib/containers/storage" ),
747+ },
748+ },
749+ "volumes" : pulumi.MapArray {
750+ pulumi.Map {
751+ "name" : pulumi .String ("trivycache" ),
752+ "emptyDir" : pulumi.Map {},
753+ },
754+ pulumi.Map {
755+ "name" : pulumi .String ("imageoverlay" ),
756+ "hostPath" : pulumi.Map {
757+ "path" : pulumi .String ("/var/lib/containers/storage" ),
758+ },
759+ },
760+ },
761+ },
762+ "clusterAgent" : pulumi.Map {
763+ "resources" : pulumi.StringMapMap {
764+ "limits" : pulumi.StringMap {
765+ "cpu" : pulumi .String ("300m" ),
766+ "memory" : pulumi .String ("400Mi" ),
767+ },
768+ "requests" : pulumi.StringMap {
769+ "cpu" : pulumi .String ("150m" ),
770+ "memory" : pulumi .String ("300Mi" ),
771+ },
772+ },
773+ "enabled" : pulumi .Bool (true ),
774+ "podSecurity" : pulumi.Map {
775+ "securityContextConstraints" : pulumi.Map {
776+ "create" : pulumi .Bool (true ),
777+ },
778+ },
779+ },
780+ }
781+ }
782+
683783func buildWindowsHelmValues (baseName string , agentImagePath , agentImageTag , _ , _ string ) HelmValues {
684784 return HelmValues {
685785 "targetSystem" : pulumi .String ("windows" ),
@@ -879,7 +979,7 @@ func (values HelmValues) configureFakeintake(e config.Env, fakeintake *fakeintak
879979 }
880980}
881981
882- func (values HelmValues ) toYAMLPulumiAssetOutput () pulumi.AssetOutput {
982+ func (values HelmValues ) ToYAMLPulumiAssetOutput () pulumi.AssetOutput {
883983 return pulumi .Map (values ).ToMapOutput ().ApplyT (func (v map [string ]any ) (pulumi.Asset , error ) {
884984 yamlValues , err := yaml .Marshal (v )
885985 if err != nil {
0 commit comments