Skip to content

Commit

Permalink
feat: add global context support in helm chart (kyverno#9614)
Browse files Browse the repository at this point in the history
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
  • Loading branch information
eddycharly authored Feb 2, 2024
1 parent 226fa95 commit 03af983
Show file tree
Hide file tree
Showing 12 changed files with 57 additions and 8 deletions.
1 change: 1 addition & 0 deletions charts/kyverno/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,7 @@ The chart values are organised per component.
| features.dumpPayload.enabled | bool | `false` | Enables the feature |
| features.forceFailurePolicyIgnore.enabled | bool | `false` | Enables the feature |
| features.generateValidatingAdmissionPolicy.enabled | bool | `false` | Enables the feature |
| features.globalContext.enabled | bool | `true` | Enables the feature |
| features.logging.format | string | `"text"` | Logging format |
| features.logging.verbosity | int | `2` | Logging verbosity |
| features.omitEvents.eventTypes | list | `["PolicyApplied","PolicySkipped"]` | Events which should not be emitted (possible values `PolicyViolation`, `PolicyApplied`, `PolicyError`, and `PolicySkipped`) |
Expand Down
3 changes: 3 additions & 0 deletions charts/kyverno/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,9 @@
{{- with .generateValidatingAdmissionPolicy -}}
{{- $flags = append $flags (print "--generateValidatingAdmissionPolicy=" .enabled) -}}
{{- end -}}
{{- with .globalContext -}}
{{- $flags = append $flags (print "--enableGlobalContext=" .enabled) -}}
{{- end -}}
{{- with .logging -}}
{{- $flags = append $flags (print "--loggingFormat=" .format) -}}
{{- $flags = append $flags (print "--v=" (join "," .verbosity)) -}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ spec:
"dumpPayload"
"forceFailurePolicyIgnore"
"generateValidatingAdmissionPolicy"
"globalContext"
"logging"
"omitEvents"
"policyExceptions"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,7 @@ spec:
{{- include "kyverno.features.flags" (pick (mergeOverwrite .Values.features .Values.backgroundController.featuresOverride)
"configMapCaching"
"deferredLoading"
"globalContext"
"logging"
"omitEvents"
"policyExceptions"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ spec:
{{- include "kyverno.features.flags" (pick (mergeOverwrite .Values.features .Values.cleanupController.featuresOverride)
"deferredLoading"
"dumpPayload"
"globalContext"
"logging"
"ttlController"
"protectManagedResources"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ spec:
"backgroundScan"
"configMapCaching"
"deferredLoading"
"globalContext"
"logging"
"omitEvents"
"policyExceptions"
Expand Down
3 changes: 3 additions & 0 deletions charts/kyverno/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,9 @@ features:
generateValidatingAdmissionPolicy:
# -- Enables the feature
enabled: false
globalContext:
# -- Enables the feature
enabled: true
logging:
# -- Logging format
format: text
Expand Down
13 changes: 12 additions & 1 deletion cmd/background-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ import (
kyvernoinformer "github.com/kyverno/kyverno/pkg/client/informers/externalversions"
"github.com/kyverno/kyverno/pkg/clients/dclient"
"github.com/kyverno/kyverno/pkg/config"
globalcontextcontroller "github.com/kyverno/kyverno/pkg/controllers/globalcontext"
policymetricscontroller "github.com/kyverno/kyverno/pkg/controllers/metrics/policy"
engineapi "github.com/kyverno/kyverno/pkg/engine/api"
"github.com/kyverno/kyverno/pkg/engine/apicall"
"github.com/kyverno/kyverno/pkg/engine/globalcontext/store"
"github.com/kyverno/kyverno/pkg/engine/jmespath"
"github.com/kyverno/kyverno/pkg/event"
"github.com/kyverno/kyverno/pkg/leaderelection"
Expand Down Expand Up @@ -153,7 +155,15 @@ func main() {
eventGenerator,
event.Workers,
)
// this controller only subscribe to events, nothing is returned...
gceController := internal.NewController(
globalcontextcontroller.ControllerName,
globalcontextcontroller.NewController(
kyvernoInformer.Kyverno().V2alpha1().GlobalContextEntries(),
setup.KyvernoDynamicClient,
store.New(),
),
globalcontextcontroller.Workers,
) // this controller only subscribe to events, nothing is returned...
policymetricscontroller.NewController(
setup.MetricsManager,
kyvernoInformer.Kyverno().V1().ClusterPolicies(),
Expand Down Expand Up @@ -231,6 +241,7 @@ func main() {
}
// start non leader controllers
eventController.Run(signalCtx, setup.Logger, &wg)
gceController.Run(signalCtx, setup.Logger, &wg)
// start leader election
le.Run(signalCtx)
// wait for everything to shut down and exit
Expand Down
13 changes: 6 additions & 7 deletions cmd/cleanup-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ import (
"github.com/kyverno/kyverno/pkg/controllers/cleanup"
genericloggingcontroller "github.com/kyverno/kyverno/pkg/controllers/generic/logging"
genericwebhookcontroller "github.com/kyverno/kyverno/pkg/controllers/generic/webhook"
"github.com/kyverno/kyverno/pkg/controllers/globalcontext"
globalcontextcontroller "github.com/kyverno/kyverno/pkg/controllers/globalcontext"
ttlcontroller "github.com/kyverno/kyverno/pkg/controllers/ttl"
globalcontextstore "github.com/kyverno/kyverno/pkg/engine/globalcontext/store"
"github.com/kyverno/kyverno/pkg/engine/globalcontext/store"
"github.com/kyverno/kyverno/pkg/event"
"github.com/kyverno/kyverno/pkg/informers"
"github.com/kyverno/kyverno/pkg/leaderelection"
Expand Down Expand Up @@ -159,15 +159,14 @@ func main() {
eventGenerator,
event.Workers,
)
store := globalcontextstore.New()
gceController := internal.NewController(
globalcontext.ControllerName,
globalcontext.NewController(
globalcontextcontroller.ControllerName,
globalcontextcontroller.NewController(
kyvernoInformer.Kyverno().V2alpha1().GlobalContextEntries(),
setup.KyvernoDynamicClient,
store,
store.New(),
),
globalcontext.Workers,
globalcontextcontroller.Workers,
)
// start informers and wait for cache sync
if !internal.StartInformersAndWaitForCacheSync(ctx, setup.Logger, kubeInformer, kyvernoInformer) {
Expand Down
12 changes: 12 additions & 0 deletions cmd/kyverno/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@ import (
"github.com/kyverno/kyverno/pkg/controllers/certmanager"
genericloggingcontroller "github.com/kyverno/kyverno/pkg/controllers/generic/logging"
genericwebhookcontroller "github.com/kyverno/kyverno/pkg/controllers/generic/webhook"
globalcontextcontroller "github.com/kyverno/kyverno/pkg/controllers/globalcontext"
policymetricscontroller "github.com/kyverno/kyverno/pkg/controllers/metrics/policy"
policycachecontroller "github.com/kyverno/kyverno/pkg/controllers/policycache"
vapcontroller "github.com/kyverno/kyverno/pkg/controllers/validatingadmissionpolicy-generate"
webhookcontroller "github.com/kyverno/kyverno/pkg/controllers/webhook"
engineapi "github.com/kyverno/kyverno/pkg/engine/api"
"github.com/kyverno/kyverno/pkg/engine/apicall"
"github.com/kyverno/kyverno/pkg/engine/globalcontext/store"
"github.com/kyverno/kyverno/pkg/event"
"github.com/kyverno/kyverno/pkg/informers"
"github.com/kyverno/kyverno/pkg/leaderelection"
Expand Down Expand Up @@ -323,6 +325,15 @@ func main() {
logging.WithName("EventGenerator"),
strings.Split(omitEvents, ",")...,
)
gceController := internal.NewController(
globalcontextcontroller.ControllerName,
globalcontextcontroller.NewController(
kyvernoInformer.Kyverno().V2alpha1().GlobalContextEntries(),
setup.KyvernoDynamicClient,
store.New(),
),
globalcontextcontroller.Workers,
)
eventController := internal.NewController(
event.ControllerName,
eventGenerator,
Expand Down Expand Up @@ -523,6 +534,7 @@ func main() {
defer server.Stop()
// start non leader controllers
eventController.Run(signalCtx, setup.Logger, &wg)
gceController.Run(signalCtx, setup.Logger, &wg)
for _, controller := range nonLeaderControllers {
controller.Run(signalCtx, setup.Logger.WithName("controllers"), &wg)
}
Expand Down
12 changes: 12 additions & 0 deletions cmd/reports-controller/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,14 @@ import (
kyvernoinformer "github.com/kyverno/kyverno/pkg/client/informers/externalversions"
"github.com/kyverno/kyverno/pkg/clients/dclient"
"github.com/kyverno/kyverno/pkg/config"
globalcontextcontroller "github.com/kyverno/kyverno/pkg/controllers/globalcontext"
admissionreportcontroller "github.com/kyverno/kyverno/pkg/controllers/report/admission"
aggregatereportcontroller "github.com/kyverno/kyverno/pkg/controllers/report/aggregate"
backgroundscancontroller "github.com/kyverno/kyverno/pkg/controllers/report/background"
resourcereportcontroller "github.com/kyverno/kyverno/pkg/controllers/report/resource"
engineapi "github.com/kyverno/kyverno/pkg/engine/api"
"github.com/kyverno/kyverno/pkg/engine/apicall"
"github.com/kyverno/kyverno/pkg/engine/globalcontext/store"
"github.com/kyverno/kyverno/pkg/engine/jmespath"
"github.com/kyverno/kyverno/pkg/event"
"github.com/kyverno/kyverno/pkg/leaderelection"
Expand Down Expand Up @@ -283,6 +285,15 @@ func main() {
eventGenerator,
event.Workers,
)
gceController := internal.NewController(
globalcontextcontroller.ControllerName,
globalcontextcontroller.NewController(
kyvernoInformer.Kyverno().V2alpha1().GlobalContextEntries(),
setup.KyvernoDynamicClient,
store.New(),
),
globalcontextcontroller.Workers,
)
// engine
engine := internal.NewEngine(
ctx,
Expand Down Expand Up @@ -372,6 +383,7 @@ func main() {
}
// start non leader controllers
eventController.Run(ctx, setup.Logger, &wg)
gceController.Run(ctx, setup.Logger, &wg)
// start leader election
le.Run(ctx)
// wait for everything to shut down and exit
Expand Down
4 changes: 4 additions & 0 deletions config/install-latest-testing.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51836,6 +51836,7 @@ spec:
- --dumpPayload=false
- --forceFailurePolicyIgnore=false
- --generateValidatingAdmissionPolicy=false
- --enableGlobalContext=true
- --loggingFormat=text
- --v=2
- --omitEvents=PolicyApplied,PolicySkipped
Expand Down Expand Up @@ -51987,6 +51988,7 @@ spec:
- --metricsPort=8000
- --enableConfigMapCaching=true
- --enableDeferredLoading=true
- --enableGlobalContext=true
- --loggingFormat=text
- --v=2
- --omitEvents=PolicyApplied,PolicySkipped
Expand Down Expand Up @@ -52094,6 +52096,7 @@ spec:
- --metricsPort=8000
- --enableDeferredLoading=true
- --dumpPayload=false
- --enableGlobalContext=true
- --loggingFormat=text
- --v=2
- --protectManagedResources=false
Expand Down Expand Up @@ -52234,6 +52237,7 @@ spec:
- --skipResourceFilters=true
- --enableConfigMapCaching=true
- --enableDeferredLoading=true
- --enableGlobalContext=true
- --loggingFormat=text
- --v=2
- --omitEvents=PolicyApplied,PolicySkipped
Expand Down

0 comments on commit 03af983

Please sign in to comment.