mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-31 03:45:17 +00:00
feat: add missing polex flags (#6030)
* feat: add missing polex flags Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * fix Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * fix Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * chart defaul Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> * codegen Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com> Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
This commit is contained in:
parent
7608842569
commit
af3882f869
12 changed files with 68 additions and 31 deletions
|
@ -136,7 +136,7 @@ The command removes all the Kubernetes components associated with the chart and
|
||||||
| initImage.repository | string | `"ghcr.io/kyverno/kyvernopre"` | Image repository |
|
| initImage.repository | string | `"ghcr.io/kyverno/kyvernopre"` | Image repository |
|
||||||
| initImage.tag | string | `nil` | Image tag If initImage.tag is missing, defaults to image.tag |
|
| initImage.tag | string | `nil` | Image tag If initImage.tag is missing, defaults to image.tag |
|
||||||
| initImage.pullPolicy | string | `nil` | Image pull policy If initImage.pullPolicy is missing, defaults to image.pullPolicy |
|
| initImage.pullPolicy | string | `nil` | Image pull policy If initImage.pullPolicy is missing, defaults to image.pullPolicy |
|
||||||
| initContainer.extraArgs | list | `["--loggingFormat=text"]` | Extra arguments to give to the kyvernopre binary. |
|
| initContainer.extraArgs | list | `["--loggingFormat=text","--exceptionNamespace={{ include \"kyverno.namespace\" . }}"]` | Extra arguments to give to the kyvernopre binary. |
|
||||||
| testImage.registry | string | `nil` | Image registry |
|
| testImage.registry | string | `nil` | Image registry |
|
||||||
| testImage.repository | string | `"busybox"` | Image repository |
|
| testImage.repository | string | `"busybox"` | Image repository |
|
||||||
| testImage.tag | string | `nil` | Image tag Defaults to `latest` if omitted |
|
| testImage.tag | string | `nil` | Image tag Defaults to `latest` if omitted |
|
||||||
|
|
|
@ -65,6 +65,7 @@ initContainer:
|
||||||
# -- Extra arguments to give to the kyvernopre binary.
|
# -- Extra arguments to give to the kyvernopre binary.
|
||||||
extraArgs:
|
extraArgs:
|
||||||
- --loggingFormat=text
|
- --loggingFormat=text
|
||||||
|
- --exceptionNamespace={{ include "kyverno.namespace" . }}
|
||||||
|
|
||||||
|
|
||||||
testImage:
|
testImage:
|
||||||
|
|
|
@ -34,6 +34,7 @@ import (
|
||||||
resourcereportcontroller "github.com/kyverno/kyverno/pkg/controllers/report/resource"
|
resourcereportcontroller "github.com/kyverno/kyverno/pkg/controllers/report/resource"
|
||||||
webhookcontroller "github.com/kyverno/kyverno/pkg/controllers/webhook"
|
webhookcontroller "github.com/kyverno/kyverno/pkg/controllers/webhook"
|
||||||
"github.com/kyverno/kyverno/pkg/cosign"
|
"github.com/kyverno/kyverno/pkg/cosign"
|
||||||
|
"github.com/kyverno/kyverno/pkg/engine"
|
||||||
"github.com/kyverno/kyverno/pkg/engine/context/resolvers"
|
"github.com/kyverno/kyverno/pkg/engine/context/resolvers"
|
||||||
"github.com/kyverno/kyverno/pkg/event"
|
"github.com/kyverno/kyverno/pkg/event"
|
||||||
"github.com/kyverno/kyverno/pkg/leaderelection"
|
"github.com/kyverno/kyverno/pkg/leaderelection"
|
||||||
|
@ -172,6 +173,8 @@ func createReportControllers(
|
||||||
backgroundScanInterval time.Duration,
|
backgroundScanInterval time.Duration,
|
||||||
configuration config.Configuration,
|
configuration config.Configuration,
|
||||||
eventGenerator event.Interface,
|
eventGenerator event.Interface,
|
||||||
|
enablePolicyException bool,
|
||||||
|
exceptionNamespace string,
|
||||||
) ([]internal.Controller, func(context.Context) error) {
|
) ([]internal.Controller, func(context.Context) error) {
|
||||||
var ctrls []internal.Controller
|
var ctrls []internal.Controller
|
||||||
var warmups []func(context.Context) error
|
var warmups []func(context.Context) error
|
||||||
|
@ -215,6 +218,15 @@ func createReportControllers(
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
if backgroundScan {
|
if backgroundScan {
|
||||||
|
var exceptionsLister engine.PolicyExceptionLister
|
||||||
|
if enablePolicyException {
|
||||||
|
lister := kyvernoV2Alpha1.PolicyExceptions().Lister()
|
||||||
|
if exceptionNamespace != "" {
|
||||||
|
exceptionsLister = lister.PolicyExceptions(exceptionNamespace)
|
||||||
|
} else {
|
||||||
|
exceptionsLister = lister
|
||||||
|
}
|
||||||
|
}
|
||||||
ctrls = append(ctrls, internal.NewController(
|
ctrls = append(ctrls, internal.NewController(
|
||||||
backgroundscancontroller.ControllerName,
|
backgroundscancontroller.ControllerName,
|
||||||
backgroundscancontroller.NewController(
|
backgroundscancontroller.NewController(
|
||||||
|
@ -225,7 +237,7 @@ func createReportControllers(
|
||||||
kyvernoV1.Policies(),
|
kyvernoV1.Policies(),
|
||||||
kyvernoV1.ClusterPolicies(),
|
kyvernoV1.ClusterPolicies(),
|
||||||
kubeInformer.Core().V1().Namespaces(),
|
kubeInformer.Core().V1().Namespaces(),
|
||||||
kyvernoV2Alpha1.PolicyExceptions(),
|
exceptionsLister,
|
||||||
resourceReportController,
|
resourceReportController,
|
||||||
configMapResolver,
|
configMapResolver,
|
||||||
backgroundScanInterval,
|
backgroundScanInterval,
|
||||||
|
@ -269,6 +281,8 @@ func createrLeaderControllers(
|
||||||
runtime runtimeutils.Runtime,
|
runtime runtimeutils.Runtime,
|
||||||
configMapResolver resolvers.ConfigmapResolver,
|
configMapResolver resolvers.ConfigmapResolver,
|
||||||
backgroundScanInterval time.Duration,
|
backgroundScanInterval time.Duration,
|
||||||
|
enablePolicyException bool,
|
||||||
|
exceptionNamespace string,
|
||||||
) ([]internal.Controller, func(context.Context) error, error) {
|
) ([]internal.Controller, func(context.Context) error, error) {
|
||||||
policyCtrl, err := policy.NewPolicyController(
|
policyCtrl, err := policy.NewPolicyController(
|
||||||
kyvernoClient,
|
kyvernoClient,
|
||||||
|
@ -349,6 +363,8 @@ func createrLeaderControllers(
|
||||||
backgroundScanInterval,
|
backgroundScanInterval,
|
||||||
configuration,
|
configuration,
|
||||||
eventGenerator,
|
eventGenerator,
|
||||||
|
enablePolicyException,
|
||||||
|
exceptionNamespace,
|
||||||
)
|
)
|
||||||
return append(
|
return append(
|
||||||
[]internal.Controller{
|
[]internal.Controller{
|
||||||
|
@ -383,6 +399,8 @@ func main() {
|
||||||
dumpPayload bool
|
dumpPayload bool
|
||||||
leaderElectionRetryPeriod time.Duration
|
leaderElectionRetryPeriod time.Duration
|
||||||
backgroundScanInterval time.Duration
|
backgroundScanInterval time.Duration
|
||||||
|
enablePolicyException bool
|
||||||
|
exceptionNamespace string
|
||||||
)
|
)
|
||||||
flagset := flag.NewFlagSet("kyverno", flag.ExitOnError)
|
flagset := flag.NewFlagSet("kyverno", flag.ExitOnError)
|
||||||
flagset.BoolVar(&dumpPayload, "dumpPayload", false, "Set this flag to activate/deactivate debug mode.")
|
flagset.BoolVar(&dumpPayload, "dumpPayload", false, "Set this flag to activate/deactivate debug mode.")
|
||||||
|
@ -403,6 +421,8 @@ func main() {
|
||||||
flagset.IntVar(&backgroundScanWorkers, "backgroundScanWorkers", backgroundscancontroller.Workers, "Configure the number of background scan workers.")
|
flagset.IntVar(&backgroundScanWorkers, "backgroundScanWorkers", backgroundscancontroller.Workers, "Configure the number of background scan workers.")
|
||||||
flagset.DurationVar(&leaderElectionRetryPeriod, "leaderElectionRetryPeriod", leaderelection.DefaultRetryPeriod, "Configure leader election retry period.")
|
flagset.DurationVar(&leaderElectionRetryPeriod, "leaderElectionRetryPeriod", leaderelection.DefaultRetryPeriod, "Configure leader election retry period.")
|
||||||
flagset.DurationVar(&backgroundScanInterval, "backgroundScanInterval", time.Hour, "Configure background scan interval.")
|
flagset.DurationVar(&backgroundScanInterval, "backgroundScanInterval", time.Hour, "Configure background scan interval.")
|
||||||
|
flagset.StringVar(&exceptionNamespace, "exceptionNamespace", "", "Configure the namespace to accept PolicyExceptions.")
|
||||||
|
flagset.BoolVar(&enablePolicyException, "enablePolicyException", false, "Enable PolicyException feature.")
|
||||||
// config
|
// config
|
||||||
appConfig := internal.NewConfiguration(
|
appConfig := internal.NewConfiguration(
|
||||||
internal.WithProfiling(),
|
internal.WithProfiling(),
|
||||||
|
@ -586,6 +606,8 @@ func main() {
|
||||||
runtime,
|
runtime,
|
||||||
configMapResolver,
|
configMapResolver,
|
||||||
backgroundScanInterval,
|
backgroundScanInterval,
|
||||||
|
enablePolicyException,
|
||||||
|
exceptionNamespace,
|
||||||
)
|
)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error(err, "failed to create leader controllers")
|
logger.Error(err, "failed to create leader controllers")
|
||||||
|
@ -642,6 +664,15 @@ func main() {
|
||||||
dClient,
|
dClient,
|
||||||
openApiManager,
|
openApiManager,
|
||||||
)
|
)
|
||||||
|
var exceptionsLister engine.PolicyExceptionLister
|
||||||
|
if enablePolicyException {
|
||||||
|
lister := kyvernoInformer.Kyverno().V2alpha1().PolicyExceptions().Lister()
|
||||||
|
if exceptionNamespace != "" {
|
||||||
|
exceptionsLister = lister.PolicyExceptions(exceptionNamespace)
|
||||||
|
} else {
|
||||||
|
exceptionsLister = lister
|
||||||
|
}
|
||||||
|
}
|
||||||
resourceHandlers := webhooksresource.NewHandlers(
|
resourceHandlers := webhooksresource.NewHandlers(
|
||||||
dClient,
|
dClient,
|
||||||
kyvernoClient,
|
kyvernoClient,
|
||||||
|
@ -654,7 +685,7 @@ func main() {
|
||||||
kubeInformer.Rbac().V1().RoleBindings().Lister(),
|
kubeInformer.Rbac().V1().RoleBindings().Lister(),
|
||||||
kubeInformer.Rbac().V1().ClusterRoleBindings().Lister(),
|
kubeInformer.Rbac().V1().ClusterRoleBindings().Lister(),
|
||||||
kyvernoInformer.Kyverno().V1beta1().UpdateRequests().Lister().UpdateRequests(config.KyvernoNamespace()),
|
kyvernoInformer.Kyverno().V1beta1().UpdateRequests().Lister().UpdateRequests(config.KyvernoNamespace()),
|
||||||
kyvernoInformer.Kyverno().V2alpha1().PolicyExceptions().Lister(),
|
exceptionsLister,
|
||||||
urgen,
|
urgen,
|
||||||
eventGenerator,
|
eventGenerator,
|
||||||
openApiManager,
|
openApiManager,
|
||||||
|
|
|
@ -132,7 +132,7 @@ func createReportControllers(
|
||||||
kyvernoV1.Policies(),
|
kyvernoV1.Policies(),
|
||||||
kyvernoV1.ClusterPolicies(),
|
kyvernoV1.ClusterPolicies(),
|
||||||
kubeInformer.Core().V1().Namespaces(),
|
kubeInformer.Core().V1().Namespaces(),
|
||||||
kyvernoV2Alpha1.PolicyExceptions(),
|
kyvernoV2Alpha1.PolicyExceptions().Lister(),
|
||||||
resourceReportController,
|
resourceReportController,
|
||||||
configMapResolver,
|
configMapResolver,
|
||||||
backgroundScanInterval,
|
backgroundScanInterval,
|
||||||
|
|
|
@ -32325,6 +32325,7 @@ spec:
|
||||||
imagePullPolicy: IfNotPresent
|
imagePullPolicy: IfNotPresent
|
||||||
args:
|
args:
|
||||||
- --loggingFormat=text
|
- --loggingFormat=text
|
||||||
|
- --exceptionNamespace=kyverno
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
cpu: 100m
|
cpu: 100m
|
||||||
|
|
|
@ -11,14 +11,13 @@ import (
|
||||||
policyreportv1alpha2 "github.com/kyverno/kyverno/api/policyreport/v1alpha2"
|
policyreportv1alpha2 "github.com/kyverno/kyverno/api/policyreport/v1alpha2"
|
||||||
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
||||||
kyvernov1informers "github.com/kyverno/kyverno/pkg/client/informers/externalversions/kyverno/v1"
|
kyvernov1informers "github.com/kyverno/kyverno/pkg/client/informers/externalversions/kyverno/v1"
|
||||||
kyvernov2alpha1informers "github.com/kyverno/kyverno/pkg/client/informers/externalversions/kyverno/v2alpha1"
|
|
||||||
kyvernov1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v1"
|
kyvernov1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v1"
|
||||||
kyvernov2alpha1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v2alpha1"
|
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
"github.com/kyverno/kyverno/pkg/controllers"
|
"github.com/kyverno/kyverno/pkg/controllers"
|
||||||
"github.com/kyverno/kyverno/pkg/controllers/report/resource"
|
"github.com/kyverno/kyverno/pkg/controllers/report/resource"
|
||||||
"github.com/kyverno/kyverno/pkg/controllers/report/utils"
|
"github.com/kyverno/kyverno/pkg/controllers/report/utils"
|
||||||
|
"github.com/kyverno/kyverno/pkg/engine"
|
||||||
"github.com/kyverno/kyverno/pkg/engine/context/resolvers"
|
"github.com/kyverno/kyverno/pkg/engine/context/resolvers"
|
||||||
"github.com/kyverno/kyverno/pkg/event"
|
"github.com/kyverno/kyverno/pkg/event"
|
||||||
"github.com/kyverno/kyverno/pkg/registryclient"
|
"github.com/kyverno/kyverno/pkg/registryclient"
|
||||||
|
@ -57,7 +56,7 @@ type controller struct {
|
||||||
bgscanrLister cache.GenericLister
|
bgscanrLister cache.GenericLister
|
||||||
cbgscanrLister cache.GenericLister
|
cbgscanrLister cache.GenericLister
|
||||||
nsLister corev1listers.NamespaceLister
|
nsLister corev1listers.NamespaceLister
|
||||||
polexLister kyvernov2alpha1listers.PolicyExceptionLister
|
polexLister engine.PolicyExceptionLister
|
||||||
|
|
||||||
// queue
|
// queue
|
||||||
queue workqueue.RateLimitingInterface
|
queue workqueue.RateLimitingInterface
|
||||||
|
@ -80,7 +79,7 @@ func NewController(
|
||||||
polInformer kyvernov1informers.PolicyInformer,
|
polInformer kyvernov1informers.PolicyInformer,
|
||||||
cpolInformer kyvernov1informers.ClusterPolicyInformer,
|
cpolInformer kyvernov1informers.ClusterPolicyInformer,
|
||||||
nsInformer corev1informers.NamespaceInformer,
|
nsInformer corev1informers.NamespaceInformer,
|
||||||
polexInformer kyvernov2alpha1informers.PolicyExceptionInformer,
|
polexLister engine.PolicyExceptionLister,
|
||||||
metadataCache resource.MetadataCache,
|
metadataCache resource.MetadataCache,
|
||||||
informerCacheResolvers resolvers.ConfigmapResolver,
|
informerCacheResolvers resolvers.ConfigmapResolver,
|
||||||
forceDelay time.Duration,
|
forceDelay time.Duration,
|
||||||
|
@ -99,7 +98,7 @@ func NewController(
|
||||||
bgscanrLister: bgscanr.Lister(),
|
bgscanrLister: bgscanr.Lister(),
|
||||||
cbgscanrLister: cbgscanr.Lister(),
|
cbgscanrLister: cbgscanr.Lister(),
|
||||||
nsLister: nsInformer.Lister(),
|
nsLister: nsInformer.Lister(),
|
||||||
polexLister: polexInformer.Lister(),
|
polexLister: polexLister,
|
||||||
queue: queue,
|
queue: queue,
|
||||||
metadataCache: metadataCache,
|
metadataCache: metadataCache,
|
||||||
informerCacheResolvers: informerCacheResolvers,
|
informerCacheResolvers: informerCacheResolvers,
|
||||||
|
|
|
@ -5,7 +5,6 @@ import (
|
||||||
|
|
||||||
"github.com/go-logr/logr"
|
"github.com/go-logr/logr"
|
||||||
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
kyvernov2alpha1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v2alpha1"
|
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
"github.com/kyverno/kyverno/pkg/engine"
|
"github.com/kyverno/kyverno/pkg/engine"
|
||||||
|
@ -22,7 +21,7 @@ type scanner struct {
|
||||||
client dclient.Interface
|
client dclient.Interface
|
||||||
rclient registryclient.Client
|
rclient registryclient.Client
|
||||||
informerCacheResolvers resolvers.ConfigmapResolver
|
informerCacheResolvers resolvers.ConfigmapResolver
|
||||||
polexLister kyvernov2alpha1listers.PolicyExceptionLister
|
polexLister engine.PolicyExceptionLister
|
||||||
excludeGroupRole []string
|
excludeGroupRole []string
|
||||||
config config.Configuration
|
config config.Configuration
|
||||||
}
|
}
|
||||||
|
@ -41,7 +40,7 @@ func NewScanner(
|
||||||
client dclient.Interface,
|
client dclient.Interface,
|
||||||
rclient registryclient.Client,
|
rclient registryclient.Client,
|
||||||
informerCacheResolvers resolvers.ConfigmapResolver,
|
informerCacheResolvers resolvers.ConfigmapResolver,
|
||||||
polexLister kyvernov2alpha1listers.PolicyExceptionLister,
|
polexLister engine.PolicyExceptionLister,
|
||||||
config config.Configuration,
|
config config.Configuration,
|
||||||
excludeGroupRole ...string,
|
excludeGroupRole ...string,
|
||||||
) Scanner {
|
) Scanner {
|
||||||
|
|
|
@ -4,7 +4,6 @@ import (
|
||||||
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
kyvernov1 "github.com/kyverno/kyverno/api/kyverno/v1"
|
||||||
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
||||||
kyvernov2alpha1 "github.com/kyverno/kyverno/api/kyverno/v2alpha1"
|
kyvernov2alpha1 "github.com/kyverno/kyverno/api/kyverno/v2alpha1"
|
||||||
kyvernov2alpha1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v2alpha1"
|
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
enginectx "github.com/kyverno/kyverno/pkg/engine/context"
|
enginectx "github.com/kyverno/kyverno/pkg/engine/context"
|
||||||
|
@ -21,6 +20,12 @@ import (
|
||||||
// ExcludeFunc is a function used to determine if a resource is excluded
|
// ExcludeFunc is a function used to determine if a resource is excluded
|
||||||
type ExcludeFunc = func(kind, namespace, name string) bool
|
type ExcludeFunc = func(kind, namespace, name string) bool
|
||||||
|
|
||||||
|
type PolicyExceptionLister interface {
|
||||||
|
// List lists all PolicyExceptions in the indexer.
|
||||||
|
// Objects returned here must be treated as read-only.
|
||||||
|
List(selector labels.Selector) (ret []*kyvernov2alpha1.PolicyException, err error)
|
||||||
|
}
|
||||||
|
|
||||||
// PolicyContext contains the contexts for engine to process
|
// PolicyContext contains the contexts for engine to process
|
||||||
type PolicyContext struct {
|
type PolicyContext struct {
|
||||||
// policy is the policy to be processed
|
// policy is the policy to be processed
|
||||||
|
@ -80,7 +85,7 @@ type PolicyContext struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// peLister list all policy exceptions
|
// peLister list all policy exceptions
|
||||||
peLister kyvernov2alpha1listers.PolicyExceptionLister
|
peLister PolicyExceptionLister
|
||||||
}
|
}
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
|
@ -222,7 +227,7 @@ func (c *PolicyContext) WithSubresourcesInPolicy(subresourcesInPolicy []struct {
|
||||||
return copy
|
return copy
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PolicyContext) WithExceptions(peLister kyvernov2alpha1listers.PolicyExceptionLister) *PolicyContext {
|
func (c *PolicyContext) WithExceptions(peLister PolicyExceptionLister) *PolicyContext {
|
||||||
copy := c.Copy()
|
copy := c.Copy()
|
||||||
copy.peLister = peLister
|
copy.peLister = peLister
|
||||||
return copy
|
return copy
|
||||||
|
@ -249,7 +254,7 @@ func NewPolicyContextFromAdmissionRequest(
|
||||||
configuration config.Configuration,
|
configuration config.Configuration,
|
||||||
client dclient.Interface,
|
client dclient.Interface,
|
||||||
informerCacheResolver resolvers.ConfigmapResolver,
|
informerCacheResolver resolvers.ConfigmapResolver,
|
||||||
peLister kyvernov2alpha1listers.PolicyExceptionLister,
|
polexLister PolicyExceptionLister,
|
||||||
) (*PolicyContext, error) {
|
) (*PolicyContext, error) {
|
||||||
ctx, err := newVariablesContext(request, &admissionInfo)
|
ctx, err := newVariablesContext(request, &admissionInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -273,7 +278,7 @@ func NewPolicyContextFromAdmissionRequest(
|
||||||
WithInformerCacheResolver(informerCacheResolver).
|
WithInformerCacheResolver(informerCacheResolver).
|
||||||
WithRequestResource(*requestResource).
|
WithRequestResource(*requestResource).
|
||||||
WithSubresource(request.SubResource).
|
WithSubresource(request.SubResource).
|
||||||
WithExceptions(peLister)
|
WithExceptions(polexLister)
|
||||||
return policyContext, nil
|
return policyContext, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,9 +10,9 @@ import (
|
||||||
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
||||||
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
"github.com/kyverno/kyverno/pkg/client/clientset/versioned"
|
||||||
kyvernov1beta1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v1beta1"
|
kyvernov1beta1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v1beta1"
|
||||||
kyvernov2alpha1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v2alpha1"
|
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
|
"github.com/kyverno/kyverno/pkg/engine"
|
||||||
enginectx "github.com/kyverno/kyverno/pkg/engine/context"
|
enginectx "github.com/kyverno/kyverno/pkg/engine/context"
|
||||||
"github.com/kyverno/kyverno/pkg/engine/context/resolvers"
|
"github.com/kyverno/kyverno/pkg/engine/context/resolvers"
|
||||||
"github.com/kyverno/kyverno/pkg/event"
|
"github.com/kyverno/kyverno/pkg/event"
|
||||||
|
@ -54,7 +54,7 @@ type handlers struct {
|
||||||
rbLister rbacv1listers.RoleBindingLister
|
rbLister rbacv1listers.RoleBindingLister
|
||||||
crbLister rbacv1listers.ClusterRoleBindingLister
|
crbLister rbacv1listers.ClusterRoleBindingLister
|
||||||
urLister kyvernov1beta1listers.UpdateRequestNamespaceLister
|
urLister kyvernov1beta1listers.UpdateRequestNamespaceLister
|
||||||
peLister kyvernov2alpha1listers.PolicyExceptionLister
|
polexLister engine.PolicyExceptionLister
|
||||||
|
|
||||||
urGenerator webhookgenerate.Generator
|
urGenerator webhookgenerate.Generator
|
||||||
eventGen event.Interface
|
eventGen event.Interface
|
||||||
|
@ -77,7 +77,7 @@ func NewHandlers(
|
||||||
rbLister rbacv1listers.RoleBindingLister,
|
rbLister rbacv1listers.RoleBindingLister,
|
||||||
crbLister rbacv1listers.ClusterRoleBindingLister,
|
crbLister rbacv1listers.ClusterRoleBindingLister,
|
||||||
urLister kyvernov1beta1listers.UpdateRequestNamespaceLister,
|
urLister kyvernov1beta1listers.UpdateRequestNamespaceLister,
|
||||||
peLister kyvernov2alpha1listers.PolicyExceptionLister,
|
polexLister engine.PolicyExceptionLister,
|
||||||
urGenerator webhookgenerate.Generator,
|
urGenerator webhookgenerate.Generator,
|
||||||
eventGen event.Interface,
|
eventGen event.Interface,
|
||||||
openApiManager openapi.ValidateInterface,
|
openApiManager openapi.ValidateInterface,
|
||||||
|
@ -94,11 +94,11 @@ func NewHandlers(
|
||||||
rbLister: rbLister,
|
rbLister: rbLister,
|
||||||
crbLister: crbLister,
|
crbLister: crbLister,
|
||||||
urLister: urLister,
|
urLister: urLister,
|
||||||
peLister: peLister,
|
polexLister: polexLister,
|
||||||
urGenerator: urGenerator,
|
urGenerator: urGenerator,
|
||||||
eventGen: eventGen,
|
eventGen: eventGen,
|
||||||
openApiManager: openApiManager,
|
openApiManager: openApiManager,
|
||||||
pcBuilder: webhookutils.NewPolicyContextBuilder(configuration, client, rbLister, crbLister, informerCacheResolvers, peLister),
|
pcBuilder: webhookutils.NewPolicyContextBuilder(configuration, client, rbLister, crbLister, informerCacheResolvers, polexLister),
|
||||||
urUpdater: webhookutils.NewUpdateRequestUpdater(kyvernoClient, urLister),
|
urUpdater: webhookutils.NewUpdateRequestUpdater(kyvernoClient, urLister),
|
||||||
admissionReports: admissionReports,
|
admissionReports: admissionReports,
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
kyvernov1beta1 "github.com/kyverno/kyverno/api/kyverno/v1beta1"
|
||||||
kyvernov2alpha1listers "github.com/kyverno/kyverno/pkg/client/listers/kyverno/v2alpha1"
|
|
||||||
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
"github.com/kyverno/kyverno/pkg/clients/dclient"
|
||||||
"github.com/kyverno/kyverno/pkg/config"
|
"github.com/kyverno/kyverno/pkg/config"
|
||||||
"github.com/kyverno/kyverno/pkg/engine"
|
"github.com/kyverno/kyverno/pkg/engine"
|
||||||
|
@ -23,7 +22,7 @@ type policyContextBuilder struct {
|
||||||
rbLister rbacv1listers.RoleBindingLister
|
rbLister rbacv1listers.RoleBindingLister
|
||||||
crbLister rbacv1listers.ClusterRoleBindingLister
|
crbLister rbacv1listers.ClusterRoleBindingLister
|
||||||
informerCacheResolvers resolvers.ConfigmapResolver
|
informerCacheResolvers resolvers.ConfigmapResolver
|
||||||
peLister kyvernov2alpha1listers.PolicyExceptionLister
|
polexLister engine.PolicyExceptionLister
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewPolicyContextBuilder(
|
func NewPolicyContextBuilder(
|
||||||
|
@ -32,7 +31,7 @@ func NewPolicyContextBuilder(
|
||||||
rbLister rbacv1listers.RoleBindingLister,
|
rbLister rbacv1listers.RoleBindingLister,
|
||||||
crbLister rbacv1listers.ClusterRoleBindingLister,
|
crbLister rbacv1listers.ClusterRoleBindingLister,
|
||||||
informerCacheResolvers resolvers.ConfigmapResolver,
|
informerCacheResolvers resolvers.ConfigmapResolver,
|
||||||
peLister kyvernov2alpha1listers.PolicyExceptionLister,
|
polexLister engine.PolicyExceptionLister,
|
||||||
) PolicyContextBuilder {
|
) PolicyContextBuilder {
|
||||||
return &policyContextBuilder{
|
return &policyContextBuilder{
|
||||||
configuration: configuration,
|
configuration: configuration,
|
||||||
|
@ -40,7 +39,7 @@ func NewPolicyContextBuilder(
|
||||||
rbLister: rbLister,
|
rbLister: rbLister,
|
||||||
crbLister: crbLister,
|
crbLister: crbLister,
|
||||||
informerCacheResolvers: informerCacheResolvers,
|
informerCacheResolvers: informerCacheResolvers,
|
||||||
peLister: peLister,
|
polexLister: polexLister,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,5 +53,5 @@ func (b *policyContextBuilder) Build(request *admissionv1.AdmissionRequest) (*en
|
||||||
userRequestInfo.Roles = roles
|
userRequestInfo.Roles = roles
|
||||||
userRequestInfo.ClusterRoles = clusterRoles
|
userRequestInfo.ClusterRoles = clusterRoles
|
||||||
}
|
}
|
||||||
return engine.NewPolicyContextFromAdmissionRequest(request, userRequestInfo, b.configuration, b.client, b.informerCacheResolvers, b.peLister)
|
return engine.NewPolicyContextFromAdmissionRequest(request, userRequestInfo, b.configuration, b.client, b.informerCacheResolvers, b.polexLister)
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ extraArgs:
|
||||||
- --enableTracing
|
- --enableTracing
|
||||||
- --tracingAddress=tempo.monitoring
|
- --tracingAddress=tempo.monitoring
|
||||||
- --tracingPort=4317
|
- --tracingPort=4317
|
||||||
|
- --enablePolicyException
|
||||||
|
|
||||||
serviceMonitor:
|
serviceMonitor:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
|
@ -4,6 +4,7 @@ initContainer:
|
||||||
|
|
||||||
extraArgs:
|
extraArgs:
|
||||||
- --loggingFormat=json
|
- --loggingFormat=json
|
||||||
|
- --enablePolicyException
|
||||||
|
|
||||||
cleanupController:
|
cleanupController:
|
||||||
rbac:
|
rbac:
|
||||||
|
|
Loading…
Add table
Reference in a new issue