Skip to content

Commit

Permalink
Upgrade to controller-runtime v0.15.0
Browse files Browse the repository at this point in the history
Remove the logger in the filter types as those functions now get a
context.
Upgrade to Kubernetes v1.27.2.
Bump other dependencies.
  • Loading branch information
qbarrand committed May 24, 2023
1 parent df29c3d commit 92d257f
Show file tree
Hide file tree
Showing 14 changed files with 174 additions and 147 deletions.
7 changes: 4 additions & 3 deletions api-hub/v1beta1/managedclustermodule_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

var modulelog = logf.Log.WithName("managed-cluster-module-resource")
Expand All @@ -39,7 +40,7 @@ func (mcm *ManagedClusterModule) SetupWebhookWithManager(mgr ctrl.Manager) error
var _ webhook.Validator = &ManagedClusterModule{}

// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (mcm *ManagedClusterModule) ValidateCreate() error {
func (mcm *ManagedClusterModule) ValidateCreate() (admission.Warnings, error) {
modulelog.Info("Validating ManagedClusterModule creation", "name", mcm.Name, "namespace", mcm.Namespace)

module := &kmmv1beta1.Module{
Expand All @@ -49,7 +50,7 @@ func (mcm *ManagedClusterModule) ValidateCreate() error {
}

// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
func (mcm *ManagedClusterModule) ValidateUpdate(obj runtime.Object) error {
func (mcm *ManagedClusterModule) ValidateUpdate(obj runtime.Object) (admission.Warnings, error) {
modulelog.Info("Validating ManagedClusterModule update", "name", mcm.Name, "namespace", mcm.Namespace)

module := &kmmv1beta1.Module{
Expand All @@ -59,7 +60,7 @@ func (mcm *ManagedClusterModule) ValidateUpdate(obj runtime.Object) error {
}

// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (mcm *ManagedClusterModule) ValidateDelete() error {
func (mcm *ManagedClusterModule) ValidateDelete() (admission.Warnings, error) {
modulelog.Info("Validating ManagedClusterModule delete", "name", mcm.Name, "namespace", mcm.Namespace)

module := &kmmv1beta1.Module{
Expand Down
17 changes: 9 additions & 8 deletions api/v1beta1/module_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import (
ctrl "sigs.k8s.io/controller-runtime"
logf "sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/webhook"
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
)

// log is for logging in this package.
Expand All @@ -44,30 +45,30 @@ func (m *Module) SetupWebhookWithManager(mgr ctrl.Manager) error {
var _ webhook.Validator = &Module{}

// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
func (m *Module) ValidateCreate() error {
func (m *Module) ValidateCreate() (admission.Warnings, error) {
modulelog.Info("Validating Module creation", "name", m.Name, "namespace", m.Namespace)

if err := m.validateKernelMapping(); err != nil {
return fmt.Errorf("failed to validate kernel mappings: %v", err)
return nil, fmt.Errorf("failed to validate kernel mappings: %v", err)
}

return m.validateModprobe()
return nil, m.validateModprobe()
}

// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
func (m *Module) ValidateUpdate(_ runtime.Object) error {
func (m *Module) ValidateUpdate(_ runtime.Object) (admission.Warnings, error) {
modulelog.Info("Validating Module update", "name", m.Name, "namespace", m.Namespace)

if err := m.validateKernelMapping(); err != nil {
return fmt.Errorf("failed to validate kernel mappings: %v", err)
return nil, fmt.Errorf("failed to validate kernel mappings: %v", err)
}

return m.validateModprobe()
return nil, m.validateModprobe()
}

// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
func (m *Module) ValidateDelete() error {
return nil
func (m *Module) ValidateDelete() (admission.Warnings, error) {
return nil, nil
}

func (m *Module) validateKernelMapping() error {
Expand Down
25 changes: 14 additions & 11 deletions api/v1beta1/module_webhook_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -373,8 +373,8 @@ var _ = Describe("ValidateCreate", func() {
},
}

e := mod.ValidateCreate()
Expect(e).ToNot(HaveOccurred())
_, err := mod.ValidateCreate()
Expect(err).ToNot(HaveOccurred())
})

It("should fail when validating kernel mappings regexps", func() {
Expand All @@ -390,9 +390,9 @@ var _ = Describe("ValidateCreate", func() {
},
}

e := mod.ValidateCreate()
Expect(e).To(HaveOccurred())
Expect(e.Error()).To(ContainSubstring("failed to validate kernel mappings"))
_, err := mod.ValidateCreate()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("failed to validate kernel mappings"))
})
})

Expand Down Expand Up @@ -434,8 +434,11 @@ var _ = Describe("ValidateUpdate", func() {
},
}

Expect(mod1.ValidateUpdate(nil)).ToNot(HaveOccurred())
Expect(mod2.ValidateUpdate(nil)).ToNot(HaveOccurred())
_, err1 := mod1.ValidateUpdate(nil)
Expect(err1).ToNot(HaveOccurred())

_, err2 := mod2.ValidateUpdate(nil)
Expect(err2).ToNot(HaveOccurred())
})

It("should fail when validating kernel mappings regexps", func() {
Expand All @@ -451,15 +454,15 @@ var _ = Describe("ValidateUpdate", func() {
},
}

e := mod.ValidateUpdate(nil)
Expect(e).To(HaveOccurred())
Expect(e.Error()).To(ContainSubstring("failed to validate kernel mappings"))
_, err := mod.ValidateUpdate(nil)
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("failed to validate kernel mappings"))
})
})

var _ = Describe("ValidateDelete", func() {
It("should do nothing and return always nil", func() {
module := &Module{}
Expect(module.ValidateDelete()).ToNot(HaveOccurred())
Expect(module.ValidateDelete()).To(BeEmpty())
})
})
2 changes: 1 addition & 1 deletion cmd/manager-hub/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ func main() {

client := mgr.GetClient()

filterAPI := filter.New(client, mgr.GetLogger())
filterAPI := filter.New(client)

metricsAPI := metrics.New()
metricsAPI.Register()
Expand Down
2 changes: 1 addition & 1 deletion cmd/manager/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ func main() {

client := mgr.GetClient()

filterAPI := filter.New(client, mgr.GetLogger())
filterAPI := filter.New(client)

metricsAPI := metrics.New()
metricsAPI.Register()
Expand Down
14 changes: 6 additions & 8 deletions controllers/hub/managedclustermodule_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,11 @@ import (
"context"
"fmt"

hubv1beta1 "github.com/kubernetes-sigs/kernel-module-management/api-hub/v1beta1"
"github.com/kubernetes-sigs/kernel-module-management/internal/cluster"
"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
"github.com/kubernetes-sigs/kernel-module-management/internal/manifestwork"
"github.com/kubernetes-sigs/kernel-module-management/internal/statusupdater"
batchv1 "k8s.io/api/batch/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
Expand All @@ -31,13 +36,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/source"

hubv1beta1 "github.com/kubernetes-sigs/kernel-module-management/api-hub/v1beta1"
"github.com/kubernetes-sigs/kernel-module-management/internal/cluster"
"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
"github.com/kubernetes-sigs/kernel-module-management/internal/manifestwork"
"github.com/kubernetes-sigs/kernel-module-management/internal/statusupdater"
)

const ManagedClusterModuleReconcilerName = "ManagedClusterModule"
Expand Down Expand Up @@ -168,7 +166,7 @@ func (r *ManagedClusterModuleReconciler) SetupWithManager(mgr ctrl.Manager) erro
Owns(&workv1.ManifestWork{}).
Owns(&batchv1.Job{}).
Watches(
&source.Kind{Type: &clusterv1.ManagedCluster{}},
&clusterv1.ManagedCluster{},
handler.EnqueueRequestsFromMapFunc(r.filter.FindManagedClusterModulesForCluster),
builder.WithPredicates(
r.filter.ManagedClusterModuleReconcilerManagedClusterPredicate(),
Expand Down
3 changes: 1 addition & 2 deletions controllers/module_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/source"
)

const ModuleReconcilerName = "Module"
Expand Down Expand Up @@ -490,7 +489,7 @@ func (r *ModuleReconciler) SetupWithManager(mgr ctrl.Manager, kernelLabel string
Owns(&appsv1.DaemonSet{}).
Owns(&batchv1.Job{}).
Watches(
&source.Kind{Type: &v1.Node{}},
&v1.Node{},
handler.EnqueueRequestsFromMapFunc(r.filter.FindModulesForNode),
builder.WithPredicates(
r.filter.ModuleReconcilerNodePredicate(kernelLabel),
Expand Down
12 changes: 4 additions & 8 deletions controllers/node_kernel_clusterclaim.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ import (
"sort"
"strings"

"github.com/kubernetes-sigs/kernel-module-management/internal/constants"
"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"open-cluster-management.io/api/cluster/v1alpha1"
Expand All @@ -17,10 +19,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/log"
"sigs.k8s.io/controller-runtime/pkg/predicate"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
"sigs.k8s.io/controller-runtime/pkg/source"

"github.com/kubernetes-sigs/kernel-module-management/internal/constants"
"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
)

//+kubebuilder:rbac:groups="core",resources=nodes,verbs=get;patch;list;watch
Expand Down Expand Up @@ -101,10 +99,8 @@ func (r *NodeKernelClusterClaimReconciler) SetupWithManager(mgr ctrl.Manager) er
// Each time our ClusterClaim is updated, enqueue an empty reconciliation request.
// We list all nodes during reconciliation, so sending an empty request is OK.
Watches(
&source.Kind{
Type: &v1alpha1.ClusterClaim{},
},
handler.EnqueueRequestsFromMapFunc(func(_ client.Object) []reconcile.Request {
&v1alpha1.ClusterClaim{},
handler.EnqueueRequestsFromMapFunc(func(_ context.Context, _ client.Object) []reconcile.Request {
return []reconcile.Request{{}}
}),
builder.WithPredicates(
Expand Down
14 changes: 6 additions & 8 deletions controllers/preflightvalidation_reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ import (
"time"

v1beta12 "github.com/kubernetes-sigs/kernel-module-management/api/v1beta1"
"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
"github.com/kubernetes-sigs/kernel-module-management/internal/metrics"
"github.com/kubernetes-sigs/kernel-module-management/internal/preflight"
"github.com/kubernetes-sigs/kernel-module-management/internal/statusupdater"
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
batchv1 "k8s.io/api/batch/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/types"
Expand All @@ -31,13 +36,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/source"

"github.com/kubernetes-sigs/kernel-module-management/internal/filter"
"github.com/kubernetes-sigs/kernel-module-management/internal/metrics"
"github.com/kubernetes-sigs/kernel-module-management/internal/preflight"
"github.com/kubernetes-sigs/kernel-module-management/internal/statusupdater"
"github.com/kubernetes-sigs/kernel-module-management/internal/utils"
)

const (
Expand Down Expand Up @@ -75,7 +73,7 @@ func (r *PreflightValidationReconciler) SetupWithManager(mgr ctrl.Manager) error
For(&v1beta12.PreflightValidation{}, builder.WithPredicates(filter.PreflightReconcilerUpdatePredicate())).
Owns(&batchv1.Job{}).
Watches(
&source.Kind{Type: &v1beta12.Module{}},
&v1beta12.Module{},
handler.EnqueueRequestsFromMapFunc(r.filter.EnqueueAllPreflightValidations),
builder.WithPredicates(filter.PreflightReconcilerUpdatePredicate()),
).
Expand Down
35 changes: 17 additions & 18 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,30 +9,30 @@ require (
github.com/golang/mock v1.6.0
github.com/google/go-cmp v0.5.9
github.com/google/go-containerregistry v0.15.2
github.com/google/go-containerregistry/pkg/authn/kubernetes v0.0.0-20230316013512-53189d3374b8
github.com/google/go-containerregistry/pkg/authn/kubernetes v0.0.0-20230523181351-c3f8a49229d3
github.com/mitchellh/hashstructure/v2 v2.0.2
github.com/onsi/ginkgo/v2 v2.9.5
github.com/onsi/gomega v1.27.7
github.com/prometheus/client_golang v1.15.1
golang.org/x/exp v0.0.0-20220407100705-7b9b53b0aca4
k8s.io/api v0.26.3
k8s.io/apimachinery v0.27.1
k8s.io/client-go v0.26.3
k8s.io/api v0.27.2
k8s.io/apimachinery v0.27.2
k8s.io/client-go v0.27.2
k8s.io/klog/v2 v2.100.1
k8s.io/kubectl v0.26.3
k8s.io/utils v0.0.0-20230313181309-38a27ef9d749
open-cluster-management.io/api v0.10.1
sigs.k8s.io/controller-runtime v0.14.6
k8s.io/kubectl v0.27.2
k8s.io/utils v0.0.0-20230505201702-9f6742963106
open-cluster-management.io/api v0.11.0
sigs.k8s.io/controller-runtime v0.15.0
)

require (
github.com/beorn7/perks v1.0.1 // indirect
github.com/cespare/xxhash/v2 v2.2.0 // indirect
github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/docker/cli v23.0.5+incompatible // indirect
github.com/docker/cli v24.0.0+incompatible // indirect
github.com/docker/distribution v2.8.1+incompatible // indirect
github.com/docker/docker v23.0.5+incompatible // indirect
github.com/docker/docker v24.0.0+incompatible // indirect
github.com/docker/docker-credential-helpers v0.7.0 // indirect
github.com/emicklei/go-restful/v3 v3.10.2 // indirect
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
Expand Down Expand Up @@ -60,30 +60,29 @@ require (
github.com/opencontainers/go-digest v1.0.0 // indirect
github.com/opencontainers/image-spec v1.1.0-rc3 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus/client_model v0.3.0 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/common v0.42.0 // indirect
github.com/prometheus/procfs v0.9.0 // indirect
github.com/rogpeppe/go-internal v1.10.0 // indirect
github.com/sirupsen/logrus v1.9.0 // indirect
github.com/sirupsen/logrus v1.9.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/vbatts/tar-split v0.11.3 // indirect
golang.org/x/net v0.10.0 // indirect
golang.org/x/oauth2 v0.7.0 // indirect
golang.org/x/oauth2 v0.8.0 // indirect
golang.org/x/sync v0.2.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/term v0.8.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/time v0.3.0 // indirect
golang.org/x/tools v0.9.1 // indirect
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.3.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.30.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
k8s.io/apiextensions-apiserver v0.26.1 // indirect
k8s.io/component-base v0.26.3 // indirect
k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect
k8s.io/apiextensions-apiserver v0.27.2 // indirect
k8s.io/component-base v0.27.2 // indirect
k8s.io/kube-openapi v0.0.0-20230515203736-54b630e78af5 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
sigs.k8s.io/yaml v1.3.0 // indirect
Expand Down
Loading

0 comments on commit 92d257f

Please sign in to comment.