-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft: Enable WithIgnoreMutationWebhook #319
base: main
Are you sure you want to change the base?
Conversation
Temporary image available at |
316ec42
to
7a57ee2
Compare
44de9a5
to
2a7a652
Compare
2a7a652
to
5886703
Compare
Signed-off-by: Mmadu Manasseh <[email protected]>
5886703
to
ae53c15
Compare
Signed-off-by: Mmadu Manasseh <[email protected]>
Mergecat's ReviewClick to read mergecats review!😼 Mergecat review of go.mod@@ -61,7 +61,8 @@ require (
k8s.io/api v0.31.3
k8s.io/apiextensions-apiserver v0.31.2
k8s.io/apimachinery v0.31.3
- k8s.io/client-go v0.31.3
+ k8s.io/client-go v1.5.2
+ k8s.io/klog/v2 v2.130.1
sigs.k8s.io/controller-runtime v0.19.3
sigs.k8s.io/yaml v1.4.0
)
@@ -294,7 +295,6 @@ require (
k8s.io/cli-runtime v0.31.3 // indirect
k8s.io/component-base v0.31.3 // indirect
k8s.io/component-helpers v0.31.3 // indirect
- k8s.io/klog/v2 v2.130.1 // indirect
k8s.io/kube-aggregator v0.31.2 // indirect
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
k8s.io/kubectl v0.31.2 // indirect Feedback & Suggestions:
😼 Mergecat review of pkg/checks/diff/diff.go@@ -19,15 +19,18 @@ import (
"github.com/argoproj/gitops-engine/pkg/diff"
"github.com/argoproj/gitops-engine/pkg/sync/hook"
"github.com/argoproj/gitops-engine/pkg/sync/ignore"
- "github.com/argoproj/gitops-engine/pkg/utils/kube"
+ "github.com/argoproj/gitops-engine/pkg/utils/tracing"
"github.com/ghodss/yaml"
"github.com/go-logr/zerologr"
"github.com/pmezard/go-difflib/difflib"
"github.com/rs/zerolog/log"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
"k8s.io/apimachinery/pkg/runtime/schema"
+ "k8s.io/client-go/rest"
+ "k8s.io/klog/v2/textlogger"
"github.com/zapier/kubechecks/pkg/checks"
+ "github.com/zapier/kubechecks/pkg/gitops-engine/pkg/utils/kube"
"github.com/zapier/kubechecks/pkg/msg"
"github.com/zapier/kubechecks/telemetry"
)
@@ -201,11 +204,33 @@ func generateDiff(ctx context.Context, request checks.Request, argoSettings *set
ignoreNormalizerOpts := normalizers.IgnoreNormalizerOpts{
JQExecutionTimeout: 1 * time.Second,
}
+ kubeCtl := &kube.KubectlCmd{
+ Tracer: tracing.NopTracer{},
+ Log: textlogger.NewLogger(textlogger.NewConfig()),
+ }
+ config, err := rest.InClusterConfig()
+ if err != nil {
+ return diff.DiffResult{}, err
+ }
+ apiRes, _, err := kubeCtl.LoadOpenAPISchema(config)
+ if err != nil {
+ return diff.DiffResult{}, err
+ }
+ resources, _, err := kubeCtl.ManageResources(config, apiRes)
+ if err != nil {
+ return diff.DiffResult{}, err
+ }
+ dryRunner := diff.NewK8sServerSideDryRunner(resources)
+
diffConfig, err := argodiff.NewDiffConfigBuilder().
WithLogger(zerologr.New(&log.Logger)).
WithDiffSettings(request.App.Spec.IgnoreDifferences, overrides, ignoreAggregatedRoles, ignoreNormalizerOpts).
WithTracking(argoSettings.AppLabelKey, argoSettings.TrackingMethod).
WithNoCache().
+ WithIgnoreMutationWebhook(false).
+ WithServerSideDiff(true).
+ WithServerSideDryRunner(dryRunner).
+ WithManager("application/apply-patch").
Build()
if err != nil {
telemetry.SetError(span, err, "Build Diff") Feedback & Suggestions:
Dependency ReviewClick to read mergecats review!No suggestions found |
This PR is WIP.
By setting WithIgnoreMutationWebhook in the generateDiff function we can trigger mutating webhooks. This also requires ServerSide diffing to be enabled.
This is in preparation of being able to have kubechecks determine if a resource is going to fail a kyverno policy.