Skip to content

Commit

Permalink
Use generic resource handling
Browse files Browse the repository at this point in the history
Signed-off-by: Stephen Kitt <[email protected]>
  • Loading branch information
skitt authored and tpantelis committed Oct 10, 2023
1 parent cb1d39c commit 7d33f16
Show file tree
Hide file tree
Showing 8 changed files with 58 additions and 64 deletions.
11 changes: 5 additions & 6 deletions controllers/servicediscovery/cleanup.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ import (
corev1 "k8s.io/api/core/v1"
apierrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/reconcile"
)

Expand Down Expand Up @@ -101,9 +100,9 @@ func (r *Reconciler) doCleanup(ctx context.Context, instance *operatorv1alpha1.S
return reconcile.Result{}, r.removeFinalizer(ctx, instance)
}

//nolint:wrapcheck // No need to wrap
func (r *Reconciler) removeFinalizer(ctx context.Context, instance *operatorv1alpha1.ServiceDiscovery) error {
return finalizer.Remove(ctx, resource.ForControllerClient(r.ScopedClient, instance.Namespace, instance),
return finalizer.Remove[*operatorv1alpha1.ServiceDiscovery](ctx, resource.ForControllerClient(
r.ScopedClient, instance.Namespace, instance),
instance, opnames.CleanupFinalizer)
}

Expand All @@ -114,9 +113,9 @@ func (r *Reconciler) removeLighthouseConfigFromCustomDNSConfigMap(ctx context.Co

log.Info("Removing lighthouse config from custom DNS ConfigMap", "Name", configMap.Name, "Namespace", configMap.Namespace)

err := util.Update(ctx, resource.ForControllerClient(r.GeneralClient, configMap.Namespace, configMap), configMap,
func(existing runtime.Object) (runtime.Object, error) {
delete(existing.(*corev1.ConfigMap).Data, "lighthouse.server")
err := util.Update[*corev1.ConfigMap](ctx, resource.ForControllerClient(r.GeneralClient, configMap.Namespace, configMap), configMap,
func(existing *corev1.ConfigMap) (*corev1.ConfigMap, error) {
delete(existing.Data, "lighthouse.server")
return existing, nil
})

Expand Down
10 changes: 4 additions & 6 deletions controllers/servicediscovery/servicediscovery_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,10 @@ func (r *Reconciler) getServiceDiscovery(ctx context.Context, key types.Namespac
func (r *Reconciler) addFinalizer(ctx context.Context,
instance *submarinerv1alpha1.ServiceDiscovery,
) (*submarinerv1alpha1.ServiceDiscovery, error) {
added, err := finalizer.Add(ctx, resource.ForControllerClient(r.ScopedClient, instance.Namespace,
added, err := finalizer.Add[*submarinerv1alpha1.ServiceDiscovery](ctx, resource.ForControllerClient(r.ScopedClient, instance.Namespace,
&submarinerv1alpha1.ServiceDiscovery{}), instance, opnames.CleanupFinalizer)
if err != nil {
return nil, err //nolint:wrapcheck // No need to wrap
return nil, err
}

if !added {
Expand Down Expand Up @@ -475,10 +475,8 @@ func (r *Reconciler) updateLighthouseConfigInConfigMap(ctx context.Context, cr *
configMapNamespace, configMapName, clusterIP string,
) error {
configMap := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Namespace: configMapNamespace, Name: configMapName}}
err := util.MustUpdate(ctx, resource.ForControllerClient(r.GeneralClient, configMap.Namespace, configMap), configMap,
func(obj runtime.Object) (runtime.Object, error) {
existing := obj.(*corev1.ConfigMap)

err := util.MustUpdate[*corev1.ConfigMap](ctx, resource.ForControllerClient(r.GeneralClient, configMap.Namespace, configMap), configMap,
func(existing *corev1.ConfigMap) (*corev1.ConfigMap, error) {
coreFile := existing.Data["Corefile"]
if strings.Contains(coreFile, "lighthouse-start") {
// Assume this means we've already set the ConfigMap up, first remove existing lighthouse config
Expand Down
4 changes: 2 additions & 2 deletions controllers/submariner/cleanup.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,9 @@ func (r *Reconciler) runComponentCleanup(ctx context.Context, instance *operator
return reconcile.Result{}, r.removeFinalizer(ctx, instance)
}

//nolint:wrapcheck // No need to wrap
func (r *Reconciler) removeFinalizer(ctx context.Context, instance *operatorv1alpha1.Submariner) error {
return finalizer.Remove(ctx, resource.ForControllerClient(r.config.ScopedClient, instance.Namespace, &operatorv1alpha1.Submariner{}),
return finalizer.Remove[*operatorv1alpha1.Submariner](ctx, resource.ForControllerClient(
r.config.ScopedClient, instance.Namespace, &operatorv1alpha1.Submariner{}),
instance, opnames.CleanupFinalizer)
}

Expand Down
5 changes: 3 additions & 2 deletions controllers/submariner/submariner_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -279,10 +279,11 @@ func (r *Reconciler) getSubmariner(ctx context.Context, key types.NamespacedName
}

func (r *Reconciler) addFinalizer(ctx context.Context, instance *submopv1a1.Submariner) (*submopv1a1.Submariner, error) {
added, err := finalizer.Add(ctx, resource.ForControllerClient(r.config.ScopedClient, instance.Namespace, &submopv1a1.Submariner{}),
added, err := finalizer.Add[*submopv1a1.Submariner](ctx, resource.ForControllerClient(
r.config.ScopedClient, instance.Namespace, &submopv1a1.Submariner{}),
instance, names.CleanupFinalizer)
if err != nil {
return nil, err //nolint:wrapcheck // No need to wrap
return nil, err
}

if !added {
Expand Down
5 changes: 3 additions & 2 deletions controllers/test/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,12 @@ func (d *Driver) DeletePods(label, value string) {
}

func (d *Driver) AwaitFinalizer(obj client.Object, finalizer string) {
admtest.AwaitFinalizer(resource.ForControllerClient(d.ScopedClient, d.Namespace, obj), obj.GetName(), finalizer)
admtest.AwaitFinalizer[client.Object](resource.ForControllerClient[client.Object](d.ScopedClient, d.Namespace, obj), obj.GetName(),
finalizer)
}

func (d *Driver) AwaitNoResource(obj client.Object) {
admtest.AwaitNoResource(resource.ForControllerClient(d.ScopedClient, d.Namespace, obj), obj.GetName())
admtest.AwaitNoResource[client.Object](resource.ForControllerClient[client.Object](d.ScopedClient, d.Namespace, obj), obj.GetName())
}

func EnvMapFrom(daemonSet *appsv1.DaemonSet) map[string]string {
Expand Down
22 changes: 11 additions & 11 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ require (
github.com/pkg/errors v0.9.1
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.68.0
github.com/prometheus-operator/prometheus-operator/pkg/client v0.68.0
github.com/prometheus/client_golang v1.16.0
github.com/submariner-io/admiral v0.16.0-m4
github.com/prometheus/client_golang v1.17.0
github.com/submariner-io/admiral v0.16.0-m4.0.20231010063642-6d040ab176ec
github.com/submariner-io/shipyard v0.16.0-m4
github.com/submariner-io/submariner v0.16.0-m4
github.com/submariner-io/submariner v0.16.0-m4.0.20231010141121-3d3cc9ce23cc
github.com/uw-labs/lichen v0.1.7
golang.org/x/text v0.13.0
k8s.io/api v0.28.1
k8s.io/api v0.28.2
k8s.io/apiextensions-apiserver v0.28.1
k8s.io/apimachinery v0.28.1
k8s.io/client-go v0.28.1
k8s.io/apimachinery v0.28.2
k8s.io/client-go v0.28.2
k8s.io/utils v0.0.0-20230726121419-3b25d923346b
sigs.k8s.io/controller-runtime v0.16.1
sigs.k8s.io/controller-runtime v0.16.2
sigs.k8s.io/controller-tools v0.13.0
sigs.k8s.io/kustomize/kustomize/v3 v3.10.0
sigs.k8s.io/yaml v1.3.0
Expand Down Expand Up @@ -133,7 +133,7 @@ require (
github.com/mailru/easyjson v0.7.7 // indirect
github.com/markbates/inflect v1.0.4 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.17 // indirect
github.com/mattn/go-isatty v0.0.19 // indirect
github.com/mattn/go-runewidth v0.0.14 // indirect
github.com/mattn/go-sqlite3 v1.14.16 // indirect
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
Expand Down Expand Up @@ -166,11 +166,11 @@ require (
github.com/pelletier/go-toml v1.9.5 // indirect
github.com/peterbourgon/diskv v2.0.1+incompatible // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16 // indirect
github.com/prometheus/common v0.44.0 // indirect
github.com/prometheus/procfs v0.10.1 // indirect
github.com/prometheus/procfs v0.11.1 // indirect
github.com/rivo/uniseg v0.4.3 // indirect
github.com/rs/zerolog v1.30.0 // indirect
github.com/rs/zerolog v1.31.0 // indirect
github.com/rubenv/sql-migrate v1.3.1 // indirect
github.com/russross/blackfriday/v2 v2.1.0 // indirect
github.com/sergi/go-diff v1.2.0 // indirect
Expand Down
Loading

0 comments on commit 7d33f16

Please sign in to comment.