@@ -32,16 +32,16 @@ func (r *Reconciler) createOrApplyDeployment(trustManager *v1alpha1.TrustManager
3232 return common .FromClientError (err , "failed to check if deployment %q exists" , deploymentName )
3333 }
3434 if exists && ! deploymentModified (desired , existing ) {
35- r .log .V (4 ).Info ("deployment already matches desired state, skipping apply " , "name" , deploymentName )
35+ r .log .V (4 ).Info ("deployment resource exists and is in desired state " , "name" , deploymentName )
3636 return nil
3737 }
3838
39+ r .log .V (2 ).Info ("deployment resource has been modified, updating to desired state" , "name" , deploymentName )
3940 if err := r .Patch (r .ctx , desired , client .Apply , client .FieldOwner (fieldOwner ), client .ForceOwnership ); err != nil {
4041 return common .FromClientError (err , "failed to apply deployment %q" , deploymentName )
4142 }
4243
4344 r .eventRecorder .Eventf (trustManager , corev1 .EventTypeNormal , "Reconciled" , "deployment resource %s applied" , deploymentName )
44- r .log .V (2 ).Info ("applied deployment" , "name" , deploymentName )
4545 return nil
4646}
4747
@@ -66,10 +66,18 @@ func (r *Reconciler) getDeploymentObject(trustManager *v1alpha1.TrustManager, re
6666 return nil , common .NewIrrecoverableError (err , "failed to update trust-manager image" )
6767 }
6868
69- updateResourceRequirements (deployment , trustManager )
70- updateAffinityRules (deployment , trustManager )
71- updatePodTolerations (deployment , trustManager )
72- updateNodeSelector (deployment , trustManager )
69+ if err := updateResourceRequirements (deployment , trustManager ); err != nil {
70+ return nil , err
71+ }
72+ if err := updateAffinityRules (deployment , trustManager ); err != nil {
73+ return nil , err
74+ }
75+ if err := updatePodTolerations (deployment , trustManager ); err != nil {
76+ return nil , err
77+ }
78+ if err := updateNodeSelector (deployment , trustManager ); err != nil {
79+ return nil , err
80+ }
7381
7482 return deployment , nil
7583}
@@ -146,35 +154,50 @@ func updateImage(deployment *appsv1.Deployment) error {
146154 return nil
147155}
148156
149- func updateResourceRequirements (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) {
157+ func updateResourceRequirements (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) error {
150158 resources := trustManager .Spec .TrustManagerConfig .Resources
151159 if len (resources .Limits ) == 0 && len (resources .Requests ) == 0 {
152- return
160+ return nil
161+ }
162+ if err := common .ValidateResourceRequirements (resources , trustManagerConfigFieldPath ); err != nil {
163+ return err
153164 }
154165 for i := range deployment .Spec .Template .Spec .Containers {
155166 if deployment .Spec .Template .Spec .Containers [i ].Name == trustManagerContainerName {
156167 deployment .Spec .Template .Spec .Containers [i ].Resources = resources
157168 }
158169 }
170+ return nil
159171}
160172
161- func updateAffinityRules (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) {
173+ func updateAffinityRules (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) error {
162174 if trustManager .Spec .TrustManagerConfig .Affinity == nil {
163- return
175+ return nil
176+ }
177+ if err := common .ValidateAffinityRules (trustManager .Spec .TrustManagerConfig .Affinity , trustManagerConfigFieldPath ); err != nil {
178+ return err
164179 }
165180 deployment .Spec .Template .Spec .Affinity = trustManager .Spec .TrustManagerConfig .Affinity
181+ return nil
166182}
167183
168- func updatePodTolerations (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) {
184+ func updatePodTolerations (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) error {
169185 if trustManager .Spec .TrustManagerConfig .Tolerations == nil {
170- return
186+ return nil
187+ }
188+ if err := common .ValidateTolerationsConfig (trustManager .Spec .TrustManagerConfig .Tolerations , trustManagerConfigFieldPath ); err != nil {
189+ return err
171190 }
172191 deployment .Spec .Template .Spec .Tolerations = trustManager .Spec .TrustManagerConfig .Tolerations
192+ return nil
173193}
174194
175- func updateNodeSelector (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) {
195+ func updateNodeSelector (deployment * appsv1.Deployment , trustManager * v1alpha1.TrustManager ) error {
176196 if trustManager .Spec .TrustManagerConfig .NodeSelector == nil {
177- return
197+ return nil
198+ }
199+ if err := common .ValidateNodeSelectorConfig (trustManager .Spec .TrustManagerConfig .NodeSelector , trustManagerConfigFieldPath ); err != nil {
200+ return err
178201 }
179202 if deployment .Spec .Template .Spec .NodeSelector == nil {
180203 deployment .Spec .Template .Spec .NodeSelector = make (map [string ]string )
@@ -184,6 +207,7 @@ func updateNodeSelector(deployment *appsv1.Deployment, trustManager *v1alpha1.Tr
184207 for k , v := range trustManager .Spec .TrustManagerConfig .NodeSelector {
185208 deployment .Spec .Template .Spec .NodeSelector [k ] = v
186209 }
210+ return nil
187211}
188212
189213func updateServiceAccountName (deployment * appsv1.Deployment ) {
0 commit comments