@@ -125,8 +125,8 @@ func newPod(deploymentName, ns, role, id string) v1.Pod {
125125// CreateArangodPod creates a Pod that runs `arangod`.
126126// If the pod already exists, nil is returned.
127127// If another error occurs, that error is returned.
128- func CreateArangodPod (kubecli kubernetes.Interface , deployment metav1. Object , role , id , pvcName , image string , imagePullPolicy v1.PullPolicy ,
129- args []string , env map [string ]string , livenessProbe * HTTPProbeConfig , readinessProbe * HTTPProbeConfig , owner metav1. OwnerReference ) error {
128+ func CreateArangodPod (kubecli kubernetes.Interface , developmentMode bool , deployment APIObject , role , id , pvcName , image string , imagePullPolicy v1.PullPolicy ,
129+ args []string , env map [string ]string , livenessProbe * HTTPProbeConfig , readinessProbe * HTTPProbeConfig ) error {
130130 // Prepare basic pod
131131 p := newPod (deployment .GetName (), deployment .GetNamespace (), role , id )
132132
@@ -157,7 +157,10 @@ func CreateArangodPod(kubecli kubernetes.Interface, deployment metav1.Object, ro
157157 p .Spec .Volumes = append (p .Spec .Volumes , vol )
158158 }
159159
160- if err := createPod (kubecli , & p , deployment .GetNamespace (), owner ); err != nil {
160+ // Add (anti-)affinity
161+ p .Spec .Affinity = createAffinity (deployment .GetName (), role , ! developmentMode , "" )
162+
163+ if err := createPod (kubecli , & p , deployment .GetNamespace (), deployment .AsOwner ()); err != nil {
161164 return maskAny (err )
162165 }
163166 return nil
@@ -166,16 +169,19 @@ func CreateArangodPod(kubecli kubernetes.Interface, deployment metav1.Object, ro
166169// CreateArangoSyncPod creates a Pod that runs `arangosync`.
167170// If the pod already exists, nil is returned.
168171// If another error occurs, that error is returned.
169- func CreateArangoSyncPod (kubecli kubernetes.Interface , deployment metav1. Object , role , id , image string , imagePullPolicy v1.PullPolicy ,
170- args []string , env map [string ]string , livenessProbe * HTTPProbeConfig , owner metav1. OwnerReference ) error {
172+ func CreateArangoSyncPod (kubecli kubernetes.Interface , developmentMode bool , deployment APIObject , role , id , image string , imagePullPolicy v1.PullPolicy ,
173+ args []string , env map [string ]string , livenessProbe * HTTPProbeConfig , affinityWithRole string ) error {
171174 // Prepare basic pod
172175 p := newPod (deployment .GetName (), deployment .GetNamespace (), role , id )
173176
174177 // Add arangosync container
175178 c := arangosyncContainer (p .GetName (), image , imagePullPolicy , args , env , livenessProbe )
176179 p .Spec .Containers = append (p .Spec .Containers , c )
177180
178- if err := createPod (kubecli , & p , deployment .GetNamespace (), owner ); err != nil {
181+ // Add (anti-)affinity
182+ p .Spec .Affinity = createAffinity (deployment .GetName (), role , ! developmentMode , affinityWithRole )
183+
184+ if err := createPod (kubecli , & p , deployment .GetNamespace (), deployment .AsOwner ()); err != nil {
179185 return maskAny (err )
180186 }
181187 return nil
0 commit comments