@@ -136,7 +136,7 @@ func getPolicyTemplates(policyConf *types.PolicyConfig) ([]map[string]map[string
136136 policyTemplates := make ([]map [string ]map [string ]interface {}, 0 , policyTemplatesLength )
137137 for i , manifestGroup := range manifestGroups {
138138 complianceType := policyConf .Manifests [i ].ComplianceType
139- for _ , manifest := range manifestGroup {
139+ for j , manifest := range manifestGroup {
140140 objTemplate := map [string ]interface {}{
141141 "complianceType" : complianceType ,
142142 "objectDefinition" : manifest ,
@@ -147,7 +147,9 @@ func getPolicyTemplates(policyConf *types.PolicyConfig) ([]map[string]map[string
147147 } else {
148148 // casting each objTemplate with manifest to objectTemplates type
149149 // build policyTemplate for each objectTemplates
150- policyTemplate := buildPolicyTemplate (policyConf , & []map [string ]interface {}{objTemplate })
150+ policyTemplate := buildPolicyTemplate (
151+ policyConf , i + j + 1 , & []map [string ]interface {}{objTemplate },
152+ )
151153 setNamespaceSelector (policyConf , policyTemplate )
152154 policyTemplates = append (policyTemplates , * policyTemplate )
153155 }
@@ -162,7 +164,7 @@ func getPolicyTemplates(policyConf *types.PolicyConfig) ([]map[string]map[string
162164
163165 // just build one policyTemplate by using the above consolidated objectTemplates
164166 if policyConf .ConsolidateManifests {
165- policyTemplate := buildPolicyTemplate (policyConf , & objectTemplates )
167+ policyTemplate := buildPolicyTemplate (policyConf , 1 , & objectTemplates )
166168 setNamespaceSelector (policyConf , policyTemplate )
167169 policyTemplates = append (policyTemplates , * policyTemplate )
168170 }
@@ -184,13 +186,23 @@ func setNamespaceSelector(policyConf *types.PolicyConfig, policyTemplate *map[st
184186}
185187
186188// buildPolicyTemplate generates single policy template by using objectTemplates with manifests.
187- func buildPolicyTemplate (policyConf * types.PolicyConfig , objectTemplates * []map [string ]interface {}) * map [string ]map [string ]interface {} {
189+ // policyNum defines which number the configuration policy is in the policy. If it is greater than
190+ // one then the configuration policy name will have policyNum appended to it.
191+ func buildPolicyTemplate (
192+ policyConf * types.PolicyConfig , policyNum int , objectTemplates * []map [string ]interface {},
193+ ) * map [string ]map [string ]interface {} {
194+ var name string
195+ if policyNum > 1 {
196+ name = fmt .Sprintf ("%s%d" , policyConf .Name , policyNum )
197+ } else {
198+ name = policyConf .Name
199+ }
188200 policyTemplate := map [string ]map [string ]interface {}{
189201 "objectDefinition" : {
190202 "apiVersion" : policyAPIVersion ,
191203 "kind" : configPolicyKind ,
192204 "metadata" : map [string ]string {
193- "name" : policyConf . Name ,
205+ "name" : name ,
194206 },
195207 "spec" : map [string ]interface {}{
196208 "object-templates" : * objectTemplates ,
0 commit comments