@@ -7,13 +7,35 @@ import (
77 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
88)
99
10+ type PolicyOptions struct {
11+ Categories []string `json:"categories,omitempty" yaml:"categories,omitempty"`
12+ Controls []string `json:"controls,omitempty" yaml:"controls,omitempty"`
13+ Placement PlacementConfig `json:"placement,omitempty" yaml:"placement,omitempty"`
14+ Standards []string `json:"standards,omitempty" yaml:"standards,omitempty"`
15+ ConsolidateManifests bool `json:"consolidateManifests,omitempty" yaml:"consolidateManifests,omitempty"`
16+ Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty"`
17+ InformGatekeeperPolicies bool `json:"informGatekeeperPolicies,omitempty" yaml:"informGatekeeperPolicies,omitempty"`
18+ InformKyvernoPolicies bool `json:"informKyvernoPolicies,omitempty" yaml:"informKyvernoPolicies,omitempty"`
19+ GeneratePlacementWhenInSet bool `json:"generatePlacementWhenInSet,omitempty" yaml:"generatePlacementWhenInSet,omitempty"`
20+ PolicySets []string `json:"policySets,omitempty" yaml:"policySets,omitempty"`
21+ PolicyAnnotations map [string ]string `json:"policyAnnotations,omitempty" yaml:"policyAnnotations,omitempty"`
22+ ConfigurationPolicyAnnotations map [string ]string `json:"configurationPolicyAnnotations,omitempty" yaml:"configurationPolicyAnnotations,omitempty"`
23+ }
24+
25+ type ConfigurationPolicyOptions struct {
26+ RemediationAction string `json:"remediationAction,omitempty" yaml:"remediationAction,omitempty"`
27+ Severity string `json:"severity,omitempty" yaml:"severity,omitempty"`
28+ ComplianceType string `json:"complianceType,omitempty" yaml:"complianceType,omitempty"`
29+ MetadataComplianceType string `json:"metadataComplianceType,omitempty" yaml:"metadataComplianceType,omitempty"`
30+ EvaluationInterval EvaluationInterval `json:"evaluationInterval,omitempty" yaml:"evaluationInterval,omitempty"`
31+ NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty" yaml:"namespaceSelector,omitempty"`
32+ PruneObjectBehavior string `json:"pruneObjectBehavior,omitempty" yaml:"pruneObjectBehavior,omitempty"`
33+ }
34+
1035type Manifest struct {
11- ComplianceType string `json:"complianceType,omitempty" yaml:"complianceType,omitempty"`
12- MetadataComplianceType string `json:"metadataComplianceType,omitempty" yaml:"metadataComplianceType,omitempty"`
13- EvaluationInterval EvaluationInterval `json:"evaluationInterval,omitempty" yaml:"evaluationInterval,omitempty"`
14- PruneObjectBehavior string `json:"pruneObjectBehavior,omitempty" yaml:"pruneObjectBehavior,omitempty"`
15- Patches []map [string ]interface {} `json:"patches,omitempty" yaml:"patches,omitempty"`
16- Path string `json:"path,omitempty" yaml:"path,omitempty"`
36+ ConfigurationPolicyOptions `json:",inline" yaml:",inline"`
37+ Patches []map [string ]interface {} `json:"patches,omitempty" yaml:"patches,omitempty"`
38+ Path string `json:"path,omitempty" yaml:"path,omitempty"`
1739}
1840
1941type NamespaceSelector struct {
@@ -58,60 +80,23 @@ type EvaluationInterval struct {
5880
5981// PolicyConfig represents a policy entry in the PolicyGenerator configuration.
6082type PolicyConfig struct {
61- Categories []string `json:"categories,omitempty" yaml:"categories,omitempty"`
62- ComplianceType string `json:"complianceType,omitempty" yaml:"complianceType,omitempty"`
63- MetadataComplianceType string `json:"metadataComplianceType,omitempty" yaml:"metadataComplianceType,omitempty"`
64- Controls []string `json:"controls,omitempty" yaml:"controls,omitempty"`
83+ PolicyOptions `json:",inline" yaml:",inline"`
84+ ConfigurationPolicyOptions `json:",inline" yaml:",inline"`
85+ Name string `json:"name,omitempty" yaml:"name,omitempty"`
6586 // This a slice of structs to allow additional configuration related to a manifest such as
6687 // accepting patches.
67- Manifests []Manifest `json:"manifests,omitempty" yaml:"manifests,omitempty"`
68- Name string `json:"name,omitempty" yaml:"name,omitempty"`
69- NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty" yaml:"namespaceSelector,omitempty"`
70- // This is named Placement so that eventually PlacementRules and Placements will be supported
71- Placement PlacementConfig `json:"placement,omitempty" yaml:"placement,omitempty"`
72- RemediationAction string `json:"remediationAction,omitempty" yaml:"remediationAction,omitempty"`
73- Severity string `json:"severity,omitempty" yaml:"severity,omitempty"`
74- Standards []string `json:"standards,omitempty" yaml:"standards,omitempty"`
75- ConsolidateManifests bool `json:"consolidateManifests,omitempty" yaml:"consolidateManifests,omitempty"`
76- Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty"`
77- InformGatekeeperPolicies bool `json:"informGatekeeperPolicies,omitempty" yaml:"informGatekeeperPolicies,omitempty"`
78- InformKyvernoPolicies bool `json:"informKyvernoPolicies,omitempty" yaml:"informKyvernoPolicies,omitempty"`
79- GeneratePlacementWhenInSet bool `json:"generatePlacementWhenInSet,omitempty" yaml:"generatePlacementWhenInSet,omitempty"`
80- PolicySets []string `json:"policySets,omitempty" yaml:"policySets,omitempty"`
81- EvaluationInterval EvaluationInterval `json:"evaluationInterval,omitempty" yaml:"evaluationInterval,omitempty"`
82- PolicyAnnotations map [string ]string `json:"policyAnnotations,omitempty" yaml:"policyAnnotations,omitempty"`
83- ConfigurationPolicyAnnotations map [string ]string `json:"configurationPolicyAnnotations,omitempty" yaml:"configurationPolicyAnnotations,omitempty"`
84- PruneObjectBehavior string `json:"pruneObjectBehavior,omitempty" yaml:"pruneObjectBehavior,omitempty"`
88+ Manifests []Manifest `json:"manifests,omitempty" yaml:"manifests,omitempty"`
8589}
8690
8791type PolicyDefaults struct {
88- Categories []string `json:"categories,omitempty" yaml:"categories,omitempty"`
89- ComplianceType string `json:"complianceType,omitempty" yaml:"complianceType,omitempty"`
90- MetadataComplianceType string `json:"metadataComplianceType,omitempty" yaml:"metadataComplianceType,omitempty"`
91- Controls []string `json:"controls,omitempty" yaml:"controls,omitempty"`
92- Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
93- NamespaceSelector NamespaceSelector `json:"namespaceSelector,omitempty" yaml:"namespaceSelector,omitempty"`
94- // This is named Placement so that eventually PlacementRules and Placements will be supported
95- Placement PlacementConfig `json:"placement,omitempty" yaml:"placement,omitempty"`
96- RemediationAction string `json:"remediationAction,omitempty" yaml:"remediationAction,omitempty"`
97- Severity string `json:"severity,omitempty" yaml:"severity,omitempty"`
98- Standards []string `json:"standards,omitempty" yaml:"standards,omitempty"`
99- ConsolidateManifests bool `json:"consolidateManifests,omitempty" yaml:"consolidateManifests,omitempty"`
100- Disabled bool `json:"disabled,omitempty" yaml:"disabled,omitempty"`
101- InformGatekeeperPolicies bool `json:"informGatekeeperPolicies,omitempty" yaml:"informGatekeeperPolicies,omitempty"`
102- InformKyvernoPolicies bool `json:"informKyvernoPolicies,omitempty" yaml:"informKyvernoPolicies,omitempty"`
103- GeneratePlacementWhenInSet bool `json:"generatePlacementWhenInSet,omitempty" yaml:"generatePlacementWhenInSet,omitempty"`
104- PolicySets []string `json:"policySets,omitempty" yaml:"policySets,omitempty"`
105- EvaluationInterval EvaluationInterval `json:"evaluationInterval,omitempty" yaml:"evaluationInterval,omitempty"`
106- PolicyAnnotations map [string ]string `json:"policyAnnotations,omitempty" yaml:"policyAnnotations,omitempty"`
107- ConfigurationPolicyAnnotations map [string ]string `json:"configurationPolicyAnnotations,omitempty" yaml:"configurationPolicyAnnotations,omitempty"`
108- PruneObjectBehavior string `json:"pruneObjectBehavior,omitempty" yaml:"pruneObjectBehavior,omitempty"`
92+ PolicyOptions `json:",inline" yaml:",inline"`
93+ ConfigurationPolicyOptions `json:",inline" yaml:",inline"`
94+ Namespace string `json:"namespace,omitempty" yaml:"namespace,omitempty"`
10995}
11096
11197type PolicySetConfig struct {
112- Name string `json:"name,omitempty" yaml:"name,omitempty"`
113- Description string `json:"description,omitempty" yaml:"description,omitempty"`
114- Policies []string `json:"policies,omitempty" yaml:"policies,omitempty"`
115- // This is named Placement so that eventually PlacementRules and Placements will be supported
116- Placement PlacementConfig `json:"placement,omitempty" yaml:"placement,omitempty"`
98+ Name string `json:"name,omitempty" yaml:"name,omitempty"`
99+ Description string `json:"description,omitempty" yaml:"description,omitempty"`
100+ Policies []string `json:"policies,omitempty" yaml:"policies,omitempty"`
101+ Placement PlacementConfig `json:"placement,omitempty" yaml:"placement,omitempty"`
117102}
0 commit comments