@@ -45,6 +45,9 @@ const (
4545 EnvCSINodeDriverRegistrarImage = "CSI_NODE_DRIVER_REGISTRAR_IMAGE"
4646 EnvCSILivenessProbeImage = "CSI_LIVENESS_PROBE_IMAGE"
4747
48+ FlagCSIPodAntiAffinityPreset = "csi-pod-anti-affinity-preset"
49+ EnvCSIPodAntiAffinityPreset = "CSI_POD_ANTI_AFFINITY_PRESET"
50+
4851 FlagCSIAttacherReplicaCount = "csi-attacher-replica-count"
4952 FlagCSIProvisionerReplicaCount = "csi-provisioner-replica-count"
5053 FlagCSIResizerReplicaCount = "csi-resizer-replica-count"
@@ -116,6 +119,12 @@ func DeployDriverCmd() cli.Command {
116119 EnvVar : EnvCSISnapshotterReplicaCount ,
117120 Value : csi .DefaultCSISnapshotterReplicaCount ,
118121 },
122+ cli.StringFlag {
123+ Name : FlagCSIPodAntiAffinityPreset ,
124+ Usage : "Specify CSI deployment podAntiAffinity" ,
125+ EnvVar : EnvCSIPodAntiAffinityPreset ,
126+ Value : csi .DefaultCSIPodAntiAffinityPreset ,
127+ },
119128 cli.StringFlag {
120129 Name : FlagCSINodeDriverRegistrarImage ,
121130 Usage : "Specify CSI node-driver-registrar image" ,
@@ -221,6 +230,7 @@ func deployCSIDriver(kubeClient *clientset.Clientset, lhClient *lhclientset.Clie
221230 csiProvisionerReplicaCount := c .Int (FlagCSIProvisionerReplicaCount )
222231 csiSnapshotterReplicaCount := c .Int (FlagCSISnapshotterReplicaCount )
223232 csiResizerReplicaCount := c .Int (FlagCSIResizerReplicaCount )
233+ csiPodAntiAffinityPreset := c .String (FlagCSIPodAntiAffinityPreset )
224234 namespace := os .Getenv (types .EnvPodNamespace )
225235 serviceAccountName := os .Getenv (types .EnvServiceAccount )
226236 rootDir := c .String (FlagKubeletRootDir )
@@ -303,6 +313,10 @@ func deployCSIDriver(kubeClient *clientset.Clientset, lhClient *lhclientset.Clie
303313 logrus .Infof ("User specified root dir: %v" , rootDir )
304314 }
305315
316+ if csiPodAntiAffinityPreset != csi .CSIPodAntiAffinityPresetSoft && csiPodAntiAffinityPreset != csi .CSIPodAntiAffinityPresetHard {
317+ return fmt .Errorf ("invalid csiPodAntiAffinityPreset %v" , csiPodAntiAffinityPreset )
318+ }
319+
306320 if err := upgradeLonghornRelatedComponents (kubeClient , namespace ); err != nil {
307321 return err
308322 }
@@ -312,22 +326,22 @@ func deployCSIDriver(kubeClient *clientset.Clientset, lhClient *lhclientset.Clie
312326 return err
313327 }
314328
315- attacherDeployment := csi .NewAttacherDeployment (namespace , serviceAccountName , csiAttacherImage , rootDir , csiAttacherReplicaCount , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
329+ attacherDeployment := csi .NewAttacherDeployment (namespace , serviceAccountName , csiAttacherImage , rootDir , csiAttacherReplicaCount , csiPodAntiAffinityPreset , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
316330 if err := attacherDeployment .Deploy (kubeClient ); err != nil {
317331 return err
318332 }
319333
320- provisionerDeployment := csi .NewProvisionerDeployment (namespace , serviceAccountName , csiProvisionerImage , rootDir , csiProvisionerReplicaCount , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
334+ provisionerDeployment := csi .NewProvisionerDeployment (namespace , serviceAccountName , csiProvisionerImage , rootDir , csiProvisionerReplicaCount , csiPodAntiAffinityPreset , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
321335 if err := provisionerDeployment .Deploy (kubeClient ); err != nil {
322336 return err
323337 }
324338
325- resizerDeployment := csi .NewResizerDeployment (namespace , serviceAccountName , csiResizerImage , rootDir , csiResizerReplicaCount , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
339+ resizerDeployment := csi .NewResizerDeployment (namespace , serviceAccountName , csiResizerImage , rootDir , csiResizerReplicaCount , csiPodAntiAffinityPreset , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
326340 if err := resizerDeployment .Deploy (kubeClient ); err != nil {
327341 return err
328342 }
329343
330- snapshotterDeployment := csi .NewSnapshotterDeployment (namespace , serviceAccountName , csiSnapshotterImage , rootDir , csiSnapshotterReplicaCount , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
344+ snapshotterDeployment := csi .NewSnapshotterDeployment (namespace , serviceAccountName , csiSnapshotterImage , rootDir , csiSnapshotterReplicaCount , csiPodAntiAffinityPreset , tolerations , string (tolerationsByte ), priorityClass , registrySecret , imagePullPolicy , nodeSelector )
331345 if err := snapshotterDeployment .Deploy (kubeClient ); err != nil {
332346 return err
333347 }
0 commit comments