6
6
"os"
7
7
"reflect"
8
8
9
+ argocommon "github.com/argoproj-labs/argocd-operator/common"
10
+ argocdutil "github.com/argoproj-labs/argocd-operator/controllers/argoutil"
9
11
consolev1 "github.com/openshift/api/console/v1"
10
12
pipelinesv1alpha1 "github.com/redhat-developer/gitops-operator/api/v1alpha1"
11
13
"github.com/redhat-developer/gitops-operator/controllers/util"
@@ -241,16 +243,30 @@ func pluginConfigMap() *corev1.ConfigMap {
241
243
}
242
244
}
243
245
244
- func (r * ReconcileGitopsService ) reconcileDeployment (instance * pipelinesv1alpha1.GitopsService , request reconcile.Request ) (reconcile.Result , error ) {
246
+ func (r * ReconcileGitopsService ) reconcileDeployment (cr * pipelinesv1alpha1.GitopsService , request reconcile.Request ) (reconcile.Result , error ) {
245
247
reqLogger := logs .WithValues ("Request.Namespace" , request .Namespace , "Request.Name" , request .Name )
246
248
newPluginDeployment := pluginDeployment ()
247
249
248
- if err := controllerutil .SetControllerReference (instance , newPluginDeployment , r .Scheme ); err != nil {
250
+ if err := controllerutil .SetControllerReference (cr , newPluginDeployment , r .Scheme ); err != nil {
249
251
return reconcile.Result {}, err
250
252
}
251
253
254
+ newPluginDeployment .Spec .Template .Spec .NodeSelector = argocommon .DefaultNodeSelector ()
255
+
256
+ if cr .Spec .RunOnInfra {
257
+ newPluginDeployment .Spec .Template .Spec .NodeSelector [common .InfraNodeLabelSelector ] = ""
258
+ }
259
+ if len (cr .Spec .NodeSelector ) > 0 {
260
+ newPluginDeployment .Spec .Template .Spec .NodeSelector = argocdutil .AppendStringMap (newPluginDeployment .Spec .Template .Spec .NodeSelector , cr .Spec .NodeSelector )
261
+ }
262
+
263
+ if len (cr .Spec .Tolerations ) > 0 {
264
+ newPluginDeployment .Spec .Template .Spec .Tolerations = cr .Spec .Tolerations
265
+ }
266
+
252
267
// Check if this Deployment already exists
253
268
existingPluginDeployment := & appsv1.Deployment {}
269
+
254
270
err := r .Client .Get (context .TODO (), types.NamespacedName {Name : newPluginDeployment .Name , Namespace : newPluginDeployment .Namespace }, existingPluginDeployment )
255
271
if err != nil {
256
272
if errors .IsNotFound (err ) {
@@ -272,7 +288,9 @@ func (r *ReconcileGitopsService) reconcileDeployment(instance *pipelinesv1alpha1
272
288
! reflect .DeepEqual (existingSpecTemplate .Spec .Containers , newSpecTemplate .Spec .Containers ) ||
273
289
! reflect .DeepEqual (existingSpecTemplate .Spec .Volumes , newSpecTemplate .Spec .Volumes ) ||
274
290
! reflect .DeepEqual (existingSpecTemplate .Spec .RestartPolicy , newSpecTemplate .Spec .RestartPolicy ) ||
275
- ! reflect .DeepEqual (existingSpecTemplate .Spec .DNSPolicy , newSpecTemplate .Spec .DNSPolicy )
291
+ ! reflect .DeepEqual (existingSpecTemplate .Spec .DNSPolicy , newSpecTemplate .Spec .DNSPolicy ) ||
292
+ ! reflect .DeepEqual (existingPluginDeployment .Spec .Template .Spec .NodeSelector , newPluginDeployment .Spec .Template .Spec .NodeSelector ) ||
293
+ ! reflect .DeepEqual (existingPluginDeployment .Spec .Template .Spec .Tolerations , newPluginDeployment .Spec .Template .Spec .Tolerations )
276
294
277
295
if changed {
278
296
reqLogger .Info ("Reconciling plugin deployment" , "Namespace" , existingPluginDeployment .Namespace , "Name" , existingPluginDeployment .Name )
@@ -284,6 +302,8 @@ func (r *ReconcileGitopsService) reconcileDeployment(instance *pipelinesv1alpha1
284
302
existingSpecTemplate .Spec .Volumes = newSpecTemplate .Spec .Volumes
285
303
existingSpecTemplate .Spec .RestartPolicy = newSpecTemplate .Spec .RestartPolicy
286
304
existingSpecTemplate .Spec .DNSPolicy = newSpecTemplate .Spec .DNSPolicy
305
+ existingPluginDeployment .Spec .Template .Spec .NodeSelector = newPluginDeployment .Spec .Template .Spec .NodeSelector
306
+ existingPluginDeployment .Spec .Template .Spec .Tolerations = newPluginDeployment .Spec .Template .Spec .Tolerations
287
307
return reconcile.Result {}, r .Client .Update (context .TODO (), newPluginDeployment )
288
308
}
289
309
}
0 commit comments