@@ -208,10 +208,8 @@ func getPolicyTemplates(policyConf *types.PolicyConfig) ([]map[string]map[string
208208 policyConf ,
209209 len (policyTemplates )+ 1 ,
210210 & []map [string ]interface {}{objTemplate },
211- & policyConf .Manifests [i ].EvaluationInterval ,
212- policyConf .Manifests [i ].PruneObjectBehavior ,
211+ policyConf .Manifests [i ].ConfigurationPolicyOptions ,
213212 )
214- setNamespaceSelector (policyConf , policyTemplate )
215213 policyTemplates = append (policyTemplates , * policyTemplate )
216214 }
217215 }
@@ -230,10 +228,8 @@ func getPolicyTemplates(policyConf *types.PolicyConfig) ([]map[string]map[string
230228 policyConf ,
231229 1 ,
232230 & objectTemplates ,
233- & policyConf .EvaluationInterval ,
234- policyConf .PruneObjectBehavior ,
231+ policyConf .ConfigurationPolicyOptions ,
235232 )
236- setNamespaceSelector (policyConf , policyTemplate )
237233 policyTemplates = append (policyTemplates , * policyTemplate )
238234 }
239235
@@ -266,13 +262,16 @@ func isPolicyTypeManifest(manifest map[string]interface{}) (bool, error) {
266262}
267263
268264// setNamespaceSelector sets the namespace selector, if set, on the input policy template.
269- func setNamespaceSelector (policyConf * types.PolicyConfig , policyTemplate * map [string ]map [string ]interface {}) {
265+ func setNamespaceSelector (
266+ policyConf types.ConfigurationPolicyOptions ,
267+ policyTemplate map [string ]map [string ]interface {},
268+ ) {
270269 selector := policyConf .NamespaceSelector
271270 if selector .Exclude != nil ||
272271 selector .Include != nil ||
273272 selector .MatchLabels != nil ||
274273 selector .MatchExpressions != nil {
275- spec := ( * policyTemplate ) ["objectDefinition" ]["spec" ].(map [string ]interface {})
274+ spec := policyTemplate ["objectDefinition" ]["spec" ].(map [string ]interface {})
276275 spec ["namespaceSelector" ] = selector
277276 }
278277}
@@ -306,8 +305,7 @@ func buildPolicyTemplate(
306305 policyConf * types.PolicyConfig ,
307306 policyNum int ,
308307 objectTemplates * []map [string ]interface {},
309- evaluationInterval * types.EvaluationInterval ,
310- pruneObjectBehavior string ,
308+ configPolicyOptionsOverrides types.ConfigurationPolicyOptions ,
311309) * map [string ]map [string ]interface {} {
312310 var name string
313311 if policyNum > 1 {
@@ -331,16 +329,18 @@ func buildPolicyTemplate(
331329 },
332330 }
333331
332+ // Set NamespaceSelector with policy configuration
333+ setNamespaceSelector (policyConf .ConfigurationPolicyOptions , policyTemplate )
334+
334335 if len (policyConf .ConfigurationPolicyAnnotations ) > 0 {
335336 metadata := policyTemplate ["objectDefinition" ]["metadata" ].(map [string ]interface {})
336337 metadata ["annotations" ] = policyConf .ConfigurationPolicyAnnotations
337338 }
338339
339- if pruneObjectBehavior != "" {
340- configSpec := policyTemplate ["objectDefinition" ]["spec" ].(map [string ]interface {})
341- configSpec ["pruneObjectBehavior" ] = policyConf .PruneObjectBehavior
342- }
340+ configSpec := policyTemplate ["objectDefinition" ]["spec" ].(map [string ]interface {})
343341
342+ // Set EvaluationInterval with manifest overrides
343+ evaluationInterval := configPolicyOptionsOverrides .EvaluationInterval
344344 if evaluationInterval .Compliant != "" || evaluationInterval .NonCompliant != "" {
345345 evalInterval := map [string ]interface {}{}
346346
@@ -352,7 +352,25 @@ func buildPolicyTemplate(
352352 evalInterval ["noncompliant" ] = evaluationInterval .NonCompliant
353353 }
354354
355- policyTemplate ["objectDefinition" ]["spec" ].(map [string ]interface {})["evaluationInterval" ] = evalInterval
355+ configSpec ["evaluationInterval" ] = evalInterval
356+ }
357+
358+ // Set NamespaceSelector with manifest overrides
359+ setNamespaceSelector (configPolicyOptionsOverrides , policyTemplate )
360+
361+ // Set PruneObjectBehavior with manifest overrides
362+ if configPolicyOptionsOverrides .PruneObjectBehavior != "" {
363+ configSpec ["pruneObjectBehavior" ] = configPolicyOptionsOverrides .PruneObjectBehavior
364+ }
365+
366+ // Set RemediationAction with manifest overrides
367+ if configPolicyOptionsOverrides .RemediationAction != "" {
368+ configSpec ["remediationAction" ] = configPolicyOptionsOverrides .RemediationAction
369+ }
370+
371+ // Set Severity with manifest overrides
372+ if configPolicyOptionsOverrides .Severity != "" {
373+ configSpec ["severity" ] = configPolicyOptionsOverrides .Severity
356374 }
357375
358376 return & policyTemplate
0 commit comments