@@ -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,8 @@ 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 ("DsRegistrar" , args .RegistrarResourceSpec , defaultRegistrarResources ))
772+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "TRIDENT_RESOURCE_CLAIMS" , constructResourceClaim ("DsTrident" , args .TridentResourceSpec , defaultTridentResources ))
748773 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "LABELS" , constructLabels (args .Labels ))
749774 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "OWNER_REF" , constructOwnerRef (args .ControllingCRDetails ))
750775 // Log before secrets are inserted into YAML.
@@ -799,6 +824,13 @@ func GetCSIDaemonSetYAMLLinux(args *DaemonsetYAMLArguments) string {
799824 }
800825 }
801826
827+ defaultRegistrarResources := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
828+ Requests : v1.ResourceList {},
829+ }}
830+ defaultTridentResources := netappv1.ResourceSpec {Resources : v1.ResourceRequirements {
831+ Requests : v1.ResourceList {},
832+ }}
833+
802834 kubeletDir := strings .TrimRight (args .KubeletDir , "/" )
803835 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{TRIDENT_IMAGE}" , args .TridentImage )
804836 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{DAEMONSET_NAME}" , args .DaemonsetName )
@@ -819,6 +851,8 @@ func GetCSIDaemonSetYAMLLinux(args *DaemonsetYAMLArguments) string {
819851 daemonSetYAML = strings .ReplaceAll (daemonSetYAML , "{IMAGE_PULL_POLICY}" , args .ImagePullPolicy )
820852 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "NODE_SELECTOR" , constructNodeSelector (args .NodeSelector ))
821853 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "NODE_TOLERATIONS" , constructTolerations (tolerations ))
854+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "REGISTRAR_RESOURCE_CLAIMS" , constructResourceClaim ("DsRegistrar" , args .RegistrarResourceSpec , defaultRegistrarResources ))
855+ daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "TRIDENT_RESOURCE_CLAIMS" , constructResourceClaim ("DsTrident" , args .TridentResourceSpec , defaultTridentResources ))
822856 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "LABELS" , constructLabels (args .Labels ))
823857 daemonSetYAML = replaceMultilineYAMLTag (daemonSetYAML , "OWNER_REF" , constructOwnerRef (args .ControllingCRDetails ))
824858
@@ -907,6 +941,7 @@ spec:
907941 failureThreshold: 5
908942 initialDelaySeconds: 10
909943 periodSeconds: 10
944+ {TRIDENT_RESOURCE_CLAIMS}
910945 env:
911946 - name: KUBE_NODE_NAME
912947 valueFrom:
@@ -948,6 +983,7 @@ spec:
948983 - "--v={SIDECAR_LOG_LEVEL}"
949984 - "--csi-address=$(ADDRESS)"
950985 - "--kubelet-registration-path=$(REGISTRATION_PATH)"
986+ {REGISTRAR_RESOURCE_CLAIMS}
951987 env:
952988 - name: ADDRESS
953989 value: /plugin/csi.sock
@@ -1137,12 +1173,7 @@ spec:
11371173 mountPath: \\.\pipe\csi-proxy-filesystem-v1beta1
11381174 - name: csi-proxy-smb-pipe-v1beta1
11391175 mountPath: \\.\pipe\csi-proxy-smb-v1beta1
1140- resources:
1141- limits:
1142- memory: 400Mi
1143- requests:
1144- cpu: 10m
1145- memory: 20Mi
1176+ {TRIDENT_RESOURCE_CLAIMS}
11461177 - name: node-driver-registrar
11471178 image: {CSI_SIDECAR_REGISTRY}/csi-node-driver-registrar:v2.8.0
11481179 imagePullPolicy: {IMAGE_PULL_POLICY}
@@ -1174,12 +1205,7 @@ spec:
11741205 mountPath: C:\csi
11751206 - name: registration-dir
11761207 mountPath: C:\registration
1177- resources:
1178- limits:
1179- memory: 200Mi
1180- requests:
1181- cpu: 10m
1182- memory: 20Mi
1208+ {REGISTRAR_RESOURCE_CLAIMS}
11831209 - name: liveness-probe
11841210 volumeMounts:
11851211 - mountPath: C:\csi
@@ -1193,12 +1219,6 @@ spec:
11931219 env:
11941220 - name: CSI_ENDPOINT
11951221 value: unix:///csi/csi.sock
1196- resources:
1197- limits:
1198- memory: 100Mi
1199- requests:
1200- cpu: 10m
1201- memory: 40Mi
12021222 affinity:
12031223 nodeAffinity:
12041224 requiredDuringSchedulingIgnoredDuringExecution:
@@ -2509,6 +2529,25 @@ func constructNodeSelector(nodeLabels map[string]string) string {
25092529 return nodeSelector
25102530}
25112531
2532+ func constructResourceClaim (containerName string , resourceClaim netappv1.ResourceSpec , defaultResourceClaim netappv1.ResourceSpec ) string {
2533+ // defaultResult, _ := k8syaml.Marshal(defaultResourceClaim)
2534+
2535+ // err := k8syaml.Unmarshal(defaultResult, &resourceClaim)
2536+ // result, err := k8syaml.Marshal(resourceClaim)
2537+
2538+ userData , _ := k8syaml .Marshal (resourceClaim )
2539+
2540+ err := k8syaml .Unmarshal (userData , & defaultResourceClaim )
2541+ mergedData , err := k8syaml .Marshal (defaultResourceClaim )
2542+
2543+ if err != nil {
2544+ Log ().WithField ("container" , containerName ).Errorf ("Cannot marshal resource claims: %s" , err )
2545+ return ""
2546+ }
2547+
2548+ return string (mergedData )
2549+ }
2550+
25122551func constructTolerations (tolerations []map [string ]string ) string {
25132552 var tolerationsString string
25142553
0 commit comments