@@ -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+ defaultRegistrarResources := 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+ defaultTridentResources := 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 , defaultRegistrarResources ))
773+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "TRIDENT_RESOURCE_CLAIMS" , constructResourceClaim (
774+ "DsTrident" , args .TridentResourceSpec , defaultTridentResources ))
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+ defaultRegistrarResources := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
830+ Requests : v1.ResourceList {},
831+ }}
832+ defaultTridentResources := 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,8 @@ 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 ("DsRegistrar" , args .RegistrarResourceSpec , defaultRegistrarResources ))
857+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "TRIDENT_RESOURCE_CLAIMS" , constructResourceClaim ("DsTrident" , args .TridentResourceSpec , defaultTridentResources ))
822858 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "LABELS" , constructLabels (args .Labels ))
823859 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "OWNER_REF" , constructOwnerRef (args .ControllingCRDetails ))
824860
@@ -907,6 +943,7 @@ spec:
907943 failureThreshold: 5
908944 initialDelaySeconds: 10
909945 periodSeconds: 10
946+ {TRIDENT_RESOURCE_CLAIMS}
910947 env:
911948 - name: KUBE_NODE_NAME
912949 valueFrom:
@@ -948,6 +985,7 @@ spec:
948985 - "--v={SIDECAR_LOG_LEVEL}"
949986 - "--csi-address=$(ADDRESS)"
950987 - "--kubelet-registration-path=$(REGISTRATION_PATH)"
988+ {REGISTRAR_RESOURCE_CLAIMS}
951989 env:
952990 - name: ADDRESS
953991 value: /plugin/csi.sock
@@ -1137,12 +1175,7 @@ spec:
11371175 mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1
11381176 - name: csi-proxy-smb-pipe-v1beta1
11391177 mountPath: \\.\pipe\csi-proxy-smb-v1beta1
1140- resources:
1141- limits:
1142- memory: 400Mi
1143- requests:
1144- cpu: 10m
1145- memory: 20Mi
1178+ {TRIDENT_RESOURCE_CLAIMS}
11461179 - name: node-driver-registrar
11471180 image: {CSI_SIDECAR_REGISTRY}/csi-node-driver-registrar:v2.8.0
11481181 imagePullPolicy: {IMAGE_PULL_POLICY}
@@ -1174,12 +1207,7 @@ spec:
11741207 mountPath: C:\csi
11751208 - name: registration-dir
11761209 mountPath: C:\registration
1177- resources:
1178- limits:
1179- memory: 200Mi
1180- requests:
1181- cpu: 10m
1182- memory: 20Mi
1210+ {REGISTRAR_RESOURCE_CLAIMS}
11831211 - name: liveness-probe
11841212 volumeMounts:
11851213 - mountPath: C:\csi
@@ -1193,12 +1221,6 @@ spec:
11931221 env:
11941222 - name: CSI_ENDPOINT
11951223 value: unix:///csi/csi.sock
1196- resources:
1197- limits:
1198- memory: 100Mi
1199- requests:
1200- cpu: 10m
1201- memory: 40Mi
12021224 affinity:
12031225 nodeAffinity:
12041226 requiredDuringSchedulingIgnoredDuringExecution:
@@ -2509,6 +2531,31 @@ func constructNodeSelector(nodeLabels map[string]string) string {
25092531 return nodeSelector
25102532}
25112533
2534+ func constructResourceClaim (
2535+ containerName string , resourceClaim netappv1.ResourceSpec , defaultResourceClaim netappv1.ResourceSpec ,
2536+ ) string {
2537+ userData , err := k8syaml .Marshal (resourceClaim )
2538+ if err != nil {
2539+ Log ().WithField ("container" , containerName ).Errorf ("Cannot marshal resource claim: %s" , err )
2540+ return ""
2541+ }
2542+
2543+ if err := k8syaml .Unmarshal (userData , & defaultResourceClaim ); err != nil {
2544+ Log ().WithField ("container" , containerName ).Errorf (
2545+ "Cannot unmarshal provided resource claim into default resource claim: %s" , err ,
2546+ )
2547+ return ""
2548+ }
2549+ mergedData , err := k8syaml .Marshal (defaultResourceClaim )
2550+
2551+ if err != nil {
2552+ Log ().WithField ("container" , containerName ).Errorf ("Cannot marshal resource claim: %s" , err )
2553+ return ""
2554+ }
2555+
2556+ return string (mergedData )
2557+ }
2558+
25122559func constructTolerations (tolerations []map [string ]string ) string {
25132560 var tolerationsString string
25142561
0 commit comments