@@ -9,7 +9,11 @@ import (
99
1010 commonconfig "github.com/netapp/trident/config"
1111 . "github.com/netapp/trident/logging"
12+ netappv1 "github.com/netapp/trident/operator/controllers/orchestrator/apis/netapp/v1"
1213 "github.com/netapp/trident/utils"
14+ v1 "k8s.io/api/core/v1"
15+ "k8s.io/apimachinery/pkg/api/resource"
16+ k8syaml "sigs.k8s.io/yaml"
1317)
1418
1519const (
@@ -726,6 +730,25 @@ func GetCSIDaemonSetYAMLWindows(args *DaemonsetYAMLArguments) string {
726730 }
727731 }
728732
733+ defaultRegistrarResourceSpec := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
734+ Limits : v1.ResourceList {
735+ v1 .ResourceMemory : resource .MustParse ("100Mi" ),
736+ },
737+ Requests : v1.ResourceList {
738+ v1 .ResourceCPU : resource .MustParse ("10m" ),
739+ v1 .ResourceMemory : resource .MustParse ("40Mi" ),
740+ },
741+ }}
742+ defaultTridentResourceSpec := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
743+ Limits : v1.ResourceList {
744+ v1 .ResourceMemory : resource .MustParse ("400Mi" ),
745+ },
746+ Requests : v1.ResourceList {
747+ v1 .ResourceCPU : resource .MustParse ("10m" ),
748+ v1 .ResourceMemory : resource .MustParse ("20Mi" ),
749+ },
750+ }}
751+
729752 kubeletDir := strings .TrimRight (args .KubeletDir , "/" )
730753 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{TRIDENT_IMAGE}" , args .TridentImage )
731754 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{DAEMONSET_NAME}" , args .DaemonsetName )
@@ -745,6 +768,10 @@ func GetCSIDaemonSetYAMLWindows(args *DaemonsetYAMLArguments) string {
745768 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{IMAGE_PULL_POLICY}" , args .ImagePullPolicy )
746769 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "NODE_SELECTOR" , constructNodeSelector (args .NodeSelector ))
747770 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "NODE_TOLERATIONS" , constructTolerations (tolerations ))
771+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "REGISTRAR_RESOURCE_CLAIMS" , constructResourceClaim (
772+ "DsRegistrar" , args .RegistrarResourceSpec , defaultRegistrarResourceSpec ))
773+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "TRIDENT_RESOURCE_CLAIMS" , constructResourceClaim (
774+ "DsTrident" , args .TridentResourceSpec , defaultTridentResourceSpec ))
748775 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "LABELS" , constructLabels (args .Labels ))
749776 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "OWNER_REF" , constructOwnerRef (args .ControllingCRDetails ))
750777 // Log before secrets are inserted into YAML.
@@ -799,6 +826,13 @@ func GetCSIDaemonSetYAMLLinux(args *DaemonsetYAMLArguments) string {
799826 }
800827 }
801828
829+ defaultRegistrarResourceSpec := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
830+ Requests : v1.ResourceList {},
831+ }}
832+ defaultTridentResourceSpec := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
833+ Requests : v1.ResourceList {},
834+ }}
835+
802836 kubeletDir := strings .TrimRight (args .KubeletDir , "/" )
803837 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{TRIDENT_IMAGE}" , args .TridentImage )
804838 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{DAEMONSET_NAME}" , args .DaemonsetName )
@@ -819,6 +853,10 @@ func GetCSIDaemonSetYAMLLinux(args *DaemonsetYAMLArguments) string {
819853 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{IMAGE_PULL_POLICY}" , args .ImagePullPolicy )
820854 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "NODE_SELECTOR" , constructNodeSelector (args .NodeSelector ))
821855 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "NODE_TOLERATIONS" , constructTolerations (tolerations ))
856+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "REGISTRAR_RESOURCE_CLAIMS" , constructResourceClaim (
857+ "DsRegistrar" , args .RegistrarResourceSpec , defaultRegistrarResourceSpec ))
858+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "TRIDENT_RESOURCE_CLAIMS" , constructResourceClaim (
859+ "DsTrident" , args .TridentResourceSpec , defaultTridentResourceSpec ))
822860 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "LABELS" , constructLabels (args .Labels ))
823861 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "OWNER_REF" , constructOwnerRef (args .ControllingCRDetails ))
824862
@@ -907,6 +945,7 @@ spec:
907945 failureThreshold: 5
908946 initialDelaySeconds: 10
909947 periodSeconds: 10
948+ {TRIDENT_RESOURCE_CLAIMS}
910949 env:
911950 - name: KUBE_NODE_NAME
912951 valueFrom:
@@ -948,6 +987,7 @@ spec:
948987 - "--v={SIDECAR_LOG_LEVEL}"
949988 - "--csi-address=$(ADDRESS)"
950989 - "--kubelet-registration-path=$(REGISTRATION_PATH)"
990+ {REGISTRAR_RESOURCE_CLAIMS}
951991 env:
952992 - name: ADDRESS
953993 value: /plugin/csi.sock
@@ -1137,12 +1177,7 @@ spec:
11371177 mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1
11381178 - name: csi-proxy-smb-pipe-v1beta1
11391179 mountPath: \\.\pipe\csi-proxy-smb-v1beta1
1140- resources:
1141- limits:
1142- memory: 400Mi
1143- requests:
1144- cpu: 10m
1145- memory: 20Mi
1180+ {TRIDENT_RESOURCE_CLAIMS}
11461181 - name: node-driver-registrar
11471182 image: {CSI_SIDECAR_REGISTRY}/csi-node-driver-registrar:v2.8.0
11481183 imagePullPolicy: {IMAGE_PULL_POLICY}
@@ -1174,12 +1209,7 @@ spec:
11741209 mountPath: C:\csi
11751210 - name: registration-dir
11761211 mountPath: C:\registration
1177- resources:
1178- limits:
1179- memory: 200Mi
1180- requests:
1181- cpu: 10m
1182- memory: 20Mi
1212+ {REGISTRAR_RESOURCE_CLAIMS}
11831213 - name: liveness-probe
11841214 volumeMounts:
11851215 - mountPath: C:\csi
@@ -1193,12 +1223,6 @@ spec:
11931223 env:
11941224 - name: CSI_ENDPOINT
11951225 value: unix:///csi/csi.sock
1196- resources:
1197- limits:
1198- memory: 100Mi
1199- requests:
1200- cpu: 10m
1201- memory: 40Mi
12021226 affinity:
12031227 nodeAffinity:
12041228 requiredDuringSchedulingIgnoredDuringExecution:
@@ -2509,6 +2533,31 @@ func constructNodeSelector(nodeLabels map[string]string) string {
25092533 return nodeSelector
25102534}
25112535
2536+ func constructResourceClaim (
2537+ containerName string , resourceClaim netappv1.ResourceSpec , defaultResourceClaim netappv1.ResourceSpec ,
2538+ ) string {
2539+ userData , err := k8syaml .Marshal (resourceClaim )
2540+ if err != nil {
2541+ Log ().WithField ("container" , containerName ).Errorf ("Cannot marshal resource claim: %s" , err )
2542+ return ""
2543+ }
2544+
2545+ if err := k8syaml .Unmarshal (userData , & defaultResourceClaim ); err != nil {
2546+ Log ().WithField ("container" , containerName ).Errorf (
2547+ "Cannot unmarshal provided resource claim into default resource claim: %s" , err ,
2548+ )
2549+ return ""
2550+ }
2551+ mergedData , err := k8syaml .Marshal (defaultResourceClaim )
2552+
2553+ if err != nil {
2554+ Log ().WithField ("container" , containerName ).Errorf ("Cannot marshal resource claim: %s" , err )
2555+ return ""
2556+ }
2557+
2558+ return string (mergedData )
2559+ }
2560+
25122561func constructTolerations (tolerations []map [string ]string ) string {
25132562 var tolerationsString string
25142563
0 commit comments