Skip to content

Commit edce57e

Browse files
committed
use new custom webhook defaulter
1 parent 345a2b5 commit edce57e

19 files changed

+98
-43
lines changed

Diff for: internal/controller/postgrescluster/controller.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func (r *Reconciler) Reconcile(
9595
// Set any defaults that may not have been stored in the API. No DeepCopy
9696
// is necessary because controller-runtime makes a copy before returning
9797
// from its cache.
98-
cluster.Default()
98+
_ = cluster.Default(ctx, nil)
9999

100100
if cluster.Spec.OpenShift == nil {
101101
cluster.Spec.OpenShift = &r.IsOpenShift

Diff for: internal/controller/postgrescluster/instance_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -529,7 +529,8 @@ func TestAddPGBackRestToInstancePodSpec(t *testing.T) {
529529
ctx := context.Background()
530530
cluster := v1beta1.PostgresCluster{}
531531
cluster.Name = "hippo"
532-
cluster.Default()
532+
err := cluster.Default(ctx, nil)
533+
assert.NilError(t, err)
533534
cluster.SetLabels(map[string]string{
534535
naming.LabelVersion: "2.5.0",
535536
})
@@ -1725,7 +1726,8 @@ func TestGenerateInstanceStatefulSetIntent(t *testing.T) {
17251726
cluster = testCluster()
17261727
}
17271728

1728-
cluster.Default()
1729+
err := cluster.Default(context.Background(), nil)
1730+
assert.NilError(t, err)
17291731
cluster.UID = types.UID("hippouid")
17301732
cluster.Namespace = test.name + "-ns"
17311733
cluster.Spec.Shutdown = &test.ip.shutdown

Diff for: internal/controller/postgrescluster/pgbouncer_test.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -409,7 +409,8 @@ namespace: ns3
409409
cluster.Spec.Proxy = &v1beta1.PostgresProxySpec{
410410
PGBouncer: &v1beta1.PGBouncerPodSpec{},
411411
}
412-
cluster.Default()
412+
err := cluster.Default(context.Background(), nil)
413+
assert.NilError(t, err)
413414

414415
configmap := &corev1.ConfigMap{}
415416
configmap.Name = "some-cm2"

Diff for: internal/controller/postgrescluster/pgmonitor_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,8 @@ func TestReconcileMonitoringSecret(t *testing.T) {
713713
reconciler := &Reconciler{Client: cc, Owner: client.FieldOwner(t.Name())}
714714

715715
cluster := testCluster()
716-
cluster.Default()
716+
err := cluster.Default(context.Background(), nil)
717+
assert.NilError(t, err)
717718
cluster.UID = types.UID("hippouid")
718719
cluster.Namespace = setupNamespace(t, cc).Name
719720

@@ -787,7 +788,8 @@ func TestReconcileExporterQueriesConfig(t *testing.T) {
787788
reconciler := &Reconciler{Client: cc, Owner: client.FieldOwner(t.Name())}
788789

789790
cluster := testCluster()
790-
cluster.Default()
791+
err := cluster.Default(context.Background(), nil)
792+
assert.NilError(t, err)
791793
cluster.UID = types.UID("hippouid")
792794
cluster.Namespace = setupNamespace(t, cc).Name
793795

Diff for: internal/controller/standalone_pgadmin/controller.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ func (r *PGAdminReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ct
105105
log.V(1).Info("Reconciling pgAdmin")
106106

107107
// Set defaults if unset
108-
pgAdmin.Default()
108+
_ = pgAdmin.Default(ctx, nil)
109109

110110
var (
111111
configmap *corev1.ConfigMap

Diff for: internal/patroni/config_test.go

+9-4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package patroni
66

77
import (
8+
"context"
89
"os"
910
"os/exec"
1011
"path/filepath"
@@ -29,7 +30,8 @@ func TestClusterYAML(t *testing.T) {
2930

3031
t.Run("PG version defaulted", func(t *testing.T) {
3132
cluster := new(v1beta1.PostgresCluster)
32-
cluster.Default()
33+
err := cluster.Default(context.Background(), nil)
34+
assert.NilError(t, err)
3335
cluster.Namespace = "some-namespace"
3436
cluster.Name = "cluster-name"
3537

@@ -86,7 +88,8 @@ watchdog:
8688

8789
t.Run(">PG10", func(t *testing.T) {
8890
cluster := new(v1beta1.PostgresCluster)
89-
cluster.Default()
91+
err := cluster.Default(context.Background(), nil)
92+
assert.NilError(t, err)
9093
cluster.Namespace = "some-namespace"
9194
cluster.Name = "cluster-name"
9295
cluster.Spec.PostgresVersion = 14
@@ -759,7 +762,8 @@ func TestDynamicConfiguration(t *testing.T) {
759762
if cluster.Spec.PostgresVersion == 0 {
760763
cluster.Spec.PostgresVersion = 14
761764
}
762-
cluster.Default()
765+
err := cluster.Default(context.Background(), nil)
766+
assert.NilError(t, err)
763767
actual := DynamicConfiguration(cluster, tt.input, tt.hbas, tt.params)
764768
assert.DeepEqual(t, tt.expected, actual)
765769
})
@@ -792,7 +796,8 @@ func TestInstanceEnvironment(t *testing.T) {
792796
t.Parallel()
793797

794798
cluster := new(v1beta1.PostgresCluster)
795-
cluster.Default()
799+
err := cluster.Default(context.Background(), nil)
800+
assert.NilError(t, err)
796801
cluster.Spec.PostgresVersion = 12
797802
leaderService := new(corev1.Service)
798803
podService := new(corev1.Service)

Diff for: internal/patroni/rbac_test.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package patroni
66

77
import (
8+
"context"
89
"testing"
910

1011
"gotest.tools/v3/assert"
@@ -28,7 +29,8 @@ func isUniqueAndSorted(slice []string) bool {
2829

2930
func TestPermissions(t *testing.T) {
3031
cluster := new(v1beta1.PostgresCluster)
31-
cluster.Default()
32+
err := cluster.Default(context.Background(), nil)
33+
assert.NilError(t, err)
3234

3335
t.Run("Upstream", func(t *testing.T) {
3436
permissions := Permissions(cluster)

Diff for: internal/patroni/reconcile_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ func TestClusterConfigMap(t *testing.T) {
2727
pgHBAs := postgres.HBAs{}
2828
pgParameters := postgres.Parameters{}
2929

30-
cluster.Default()
30+
err := cluster.Default(context.Background(), nil)
31+
assert.NilError(t, err)
3132
config := new(corev1.ConfigMap)
3233
assert.NilError(t, ClusterConfigMap(ctx, cluster, pgHBAs, pgParameters, config))
3334

@@ -114,7 +115,8 @@ func TestInstancePod(t *testing.T) {
114115
t.Parallel()
115116

116117
cluster := new(v1beta1.PostgresCluster)
117-
cluster.Default()
118+
err := cluster.Default(context.Background(), nil)
119+
assert.NilError(t, err)
118120
cluster.Name = "some-such"
119121
cluster.Spec.PostgresVersion = 11
120122
cluster.Spec.Image = "image"

Diff for: internal/pgadmin/reconcile_test.go

+7-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package pgadmin
66

77
import (
8+
"context"
89
"testing"
910

1011
"gotest.tools/v3/assert"
@@ -33,7 +34,8 @@ func TestConfigMap(t *testing.T) {
3334
t.Run("Defaults", func(t *testing.T) {
3435
cluster.Spec.UserInterface = new(v1beta1.UserInterfaceSpec)
3536
cluster.Spec.UserInterface.PGAdmin = new(v1beta1.PGAdminPodSpec)
36-
cluster.Default()
37+
err := cluster.Default(context.Background(), nil)
38+
assert.NilError(t, err)
3739

3840
assert.NilError(t, ConfigMap(cluster, config))
3941

@@ -52,7 +54,8 @@ pgadmin-settings.json: |
5254
"some": "thing",
5355
"UPPER_CASE": false,
5456
}
55-
cluster.Default()
57+
err := cluster.Default(context.Background(), nil)
58+
assert.NilError(t, err)
5659

5760
assert.NilError(t, ConfigMap(cluster, config))
5861

@@ -92,7 +95,8 @@ func TestPod(t *testing.T) {
9295
t.Run("Defaults", func(t *testing.T) {
9396
cluster.Spec.UserInterface = new(v1beta1.UserInterfaceSpec)
9497
cluster.Spec.UserInterface.PGAdmin = new(v1beta1.PGAdminPodSpec)
95-
cluster.Default()
98+
err := cluster.Default(context.Background(), nil)
99+
assert.NilError(t, err)
96100

97101
call()
98102

Diff for: internal/pgbackrest/rbac_test.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package pgbackrest
66

77
import (
8+
"context"
89
"testing"
910

1011
"gotest.tools/v3/assert"
@@ -28,7 +29,8 @@ func isUniqueAndSorted(slice []string) bool {
2829

2930
func TestPermissions(t *testing.T) {
3031
cluster := new(v1beta1.PostgresCluster)
31-
cluster.Default()
32+
err := cluster.Default(context.Background(), nil)
33+
assert.NilError(t, err)
3234

3335
permissions := Permissions(cluster)
3436
for _, rule := range permissions {

Diff for: internal/pgbackrest/reconcile_test.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,8 @@ func TestAddConfigToInstancePod(t *testing.T) {
178178
},
179179
}
180180
cluster.Name = "hippo"
181-
cluster.Default()
181+
err := cluster.Default(context.Background(), nil)
182+
assert.NilError(t, err)
182183

183184
pod := corev1.PodSpec{
184185
Containers: []corev1.Container{
@@ -332,7 +333,8 @@ func TestAddConfigToInstancePod(t *testing.T) {
332333
func TestAddConfigToRepoPod(t *testing.T) {
333334
cluster := v1beta1.PostgresCluster{}
334335
cluster.Name = "hippo"
335-
cluster.Default()
336+
err := cluster.Default(context.Background(), nil)
337+
assert.NilError(t, err)
336338

337339
pod := corev1.PodSpec{
338340
Containers: []corev1.Container{
@@ -405,7 +407,8 @@ func TestAddConfigToRepoPod(t *testing.T) {
405407
func TestAddConfigToRestorePod(t *testing.T) {
406408
cluster := v1beta1.PostgresCluster{}
407409
cluster.Name = "source"
408-
cluster.Default()
410+
err := cluster.Default(context.Background(), nil)
411+
assert.NilError(t, err)
409412

410413
pod := corev1.PodSpec{
411414
Containers: []corev1.Container{
@@ -575,7 +578,8 @@ func TestAddServerToInstancePod(t *testing.T) {
575578
ctx := context.Background()
576579
cluster := v1beta1.PostgresCluster{}
577580
cluster.Name = "hippo"
578-
cluster.Default()
581+
err := cluster.Default(context.Background(), nil)
582+
assert.NilError(t, err)
579583
cluster.SetLabels(map[string]string{
580584
naming.LabelVersion: "2.5.0",
581585
})
@@ -838,7 +842,8 @@ func TestAddServerToRepoPod(t *testing.T) {
838842
ctx := context.Background()
839843
cluster := v1beta1.PostgresCluster{}
840844
cluster.Name = "hippo"
841-
cluster.Default()
845+
err := cluster.Default(context.Background(), nil)
846+
assert.NilError(t, err)
842847
cluster.SetLabels(map[string]string{
843848
naming.LabelVersion: "2.5.0",
844849
})

Diff for: internal/pgbouncer/config_test.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package pgbouncer
66

77
import (
8+
"context"
89
"os"
910
"os/exec"
1011
"path/filepath"
@@ -43,7 +44,8 @@ func TestClusterINI(t *testing.T) {
4344
t.Parallel()
4445

4546
cluster := new(v1beta1.PostgresCluster)
46-
cluster.Default()
47+
err := cluster.Default(context.Background(), nil)
48+
assert.NilError(t, err)
4749

4850
cluster.Name = "foo-baz"
4951
*cluster.Spec.Port = 9999

Diff for: internal/pgbouncer/reconcile_test.go

+8-4
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ func TestConfigMap(t *testing.T) {
3636

3737
cluster.Spec.Proxy = new(v1beta1.PostgresProxySpec)
3838
cluster.Spec.Proxy.PGBouncer = new(v1beta1.PGBouncerPodSpec)
39-
cluster.Default()
39+
err := cluster.Default(context.Background(), nil)
40+
assert.NilError(t, err)
4041

4142
ConfigMap(cluster, config)
4243

@@ -71,7 +72,8 @@ func TestSecret(t *testing.T) {
7172

7273
cluster.Spec.Proxy = new(v1beta1.PostgresProxySpec)
7374
cluster.Spec.Proxy.PGBouncer = new(v1beta1.PGBouncerPodSpec)
74-
cluster.Default()
75+
err = cluster.Default(context.Background(), nil)
76+
assert.NilError(t, err)
7577

7678
constant := existing.DeepCopy()
7779
assert.NilError(t, Secret(ctx, cluster, root, existing, service, intent))
@@ -120,7 +122,8 @@ func TestPod(t *testing.T) {
120122
t.Run("Defaults", func(t *testing.T) {
121123
cluster.Spec.Proxy = new(v1beta1.PostgresProxySpec)
122124
cluster.Spec.Proxy.PGBouncer = new(v1beta1.PGBouncerPodSpec)
123-
cluster.Default()
125+
err := cluster.Default(context.Background(), nil)
126+
assert.NilError(t, err)
124127

125128
call()
126129

@@ -487,7 +490,8 @@ func TestPostgreSQL(t *testing.T) {
487490
t.Run("Enabled", func(t *testing.T) {
488491
cluster.Spec.Proxy = new(v1beta1.PostgresProxySpec)
489492
cluster.Spec.Proxy.PGBouncer = new(v1beta1.PGBouncerPodSpec)
490-
cluster.Default()
493+
err := cluster.Default(context.Background(), nil)
494+
assert.NilError(t, err)
491495

492496
PostgreSQL(cluster, hbas)
493497

Diff for: internal/postgres/reconcile_test.go

+4-2
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ func TestInstancePod(t *testing.T) {
6464

6565
ctx := context.Background()
6666
cluster := new(v1beta1.PostgresCluster)
67-
cluster.Default()
67+
err := cluster.Default(context.Background(), nil)
68+
assert.NilError(t, err)
6869
cluster.Spec.ImagePullPolicy = corev1.PullAlways
6970
cluster.Spec.PostgresVersion = 11
7071
cluster.SetLabels(map[string]string{
@@ -711,7 +712,8 @@ volumes:
711712

712713
func TestPodSecurityContext(t *testing.T) {
713714
cluster := new(v1beta1.PostgresCluster)
714-
cluster.Default()
715+
err := cluster.Default(context.Background(), nil)
716+
assert.NilError(t, err)
715717

716718
assert.Assert(t, cmp.MarshalMatches(PodSecurityContext(cluster), `
717719
fsGroup: 26

Diff for: pkg/apis/pgv2.percona.com/v2/perconapgcluster_types.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,8 @@ func (cr *PerconaPGCluster) ToCrunchy(ctx context.Context, postgresCluster *crun
256256
return nil, err
257257
}
258258

259-
postgresCluster.Default()
259+
// omitting error because it is always nil
260+
_ = postgresCluster.Default(ctx, postgresCluster)
260261

261262
annotations := make(map[string]string)
262263
for k, v := range cr.Annotations {

Diff for: pkg/apis/postgres-operator.crunchydata.com/v1beta1/crunchy_bridgecluster_types.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
package v1beta1
66

77
import (
8+
"context"
9+
810
"k8s.io/apimachinery/pkg/api/resource"
911
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
12+
"k8s.io/apimachinery/pkg/runtime"
1013
)
1114

1215
// CrunchyBridgeClusterSpec defines the desired state of CrunchyBridgeCluster
@@ -205,16 +208,17 @@ type CrunchyBridgeCluster struct {
205208
Status CrunchyBridgeClusterStatus `json:"status,omitempty"`
206209
}
207210

208-
// Default implements "sigs.k8s.io/controller-runtime/pkg/webhook.Defaulter" so
211+
// Default implements webhook.CustomDefaulter so
209212
// a webhook can be registered for the type.
210213
// - https://book.kubebuilder.io/reference/webhook-overview.html
211-
func (c *CrunchyBridgeCluster) Default() {
214+
func (c *CrunchyBridgeCluster) Default(_ context.Context, _ runtime.Object) error {
212215
if len(c.APIVersion) == 0 {
213216
c.APIVersion = GroupVersion.String()
214217
}
215218
if len(c.Kind) == 0 {
216219
c.Kind = "CrunchyBridgeCluster"
217220
}
221+
return nil
218222
}
219223

220224
// +kubebuilder:object:root=true

0 commit comments

Comments
 (0)