Skip to content

Commit 9d82177

Browse files
committed
feat: upgrade Go to 1.26 and update dependencies to fix vulnerabilities
BREAKING CHANGE: migrate webhook interfaces to typed generics from controller-runtime v0.23.3 (Validator[T], Defaulter[T])
1 parent d4b8b6c commit 9d82177

12 files changed

Lines changed: 301 additions & 322 deletions

File tree

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Build the manager binary
2-
FROM golang:1.24.0 AS builder
2+
FROM golang:1.26.2 AS builder
33
ARG TARGETOS
44
ARG TARGETARCH
55

api/v1alphav1/overcommitclass_webhook.go

Lines changed: 4 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,6 @@ package v1alphav1
77

88
import (
99
"context"
10-
"fmt"
11-
12-
"k8s.io/apimachinery/pkg/runtime"
1310

1411
ctrl "sigs.k8s.io/controller-runtime"
1512
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -34,21 +31,16 @@ func (v *OvercommitClassValidator) InjectClient(c client.Client) {
3431
func (r *OvercommitClass) SetupWebhookWithManager(mgr ctrl.Manager) error {
3532
validator := &OvercommitClassValidator{}
3633
validator.InjectClient(mgr.GetClient())
37-
return ctrl.NewWebhookManagedBy(mgr).
38-
For(r).
34+
return ctrl.NewWebhookManagedBy(mgr, r).
3935
WithValidator(validator).
4036
Complete()
4137
}
4238

4339
// +kubebuilder:webhook:path=/validate-overcommit-inditex-dev-v1alphav1-overcommitclass,mutating=false,failurePolicy=fail,sideEffects=None,groups=overcommit.inditex.dev,resources=overcommitclass,verbs=create;update,versions=v1alphav1,name=overcommitclass.inditex.dev,admissionReviewVersions=v1
4440

4541
// ValidateCreate implements webhook.Validator so a webhook will be registered for the type
46-
func (v *OvercommitClassValidator) ValidateCreate(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
42+
func (v *OvercommitClassValidator) ValidateCreate(ctx context.Context, overcommitClass *OvercommitClass) (admission.Warnings, error) {
4743

48-
overcommitClass, ok := obj.(*OvercommitClass)
49-
if !ok {
50-
return nil, fmt.Errorf("failed to cast object to OvercommitClass")
51-
}
5244
overcommitclasslog.Info("validate create", "name", overcommitClass.Name)
5345

5446
err := isClassDefault(*overcommitClass, v.Client)
@@ -75,21 +67,10 @@ func (v *OvercommitClassValidator) ValidateCreate(ctx context.Context, obj runti
7567
}
7668

7769
// ValidateUpdate implements webhook.Validator so a webhook will be registered for the type
78-
func (v *OvercommitClassValidator) ValidateUpdate(ctx context.Context, old runtime.Object, new runtime.Object) (admission.Warnings, error) {
70+
func (v *OvercommitClassValidator) ValidateUpdate(ctx context.Context, oldOvercommitClass *OvercommitClass, newOvercommitClass *OvercommitClass) (admission.Warnings, error) {
7971

80-
// Convert old runtime.Object to *OvercommitClass
81-
oldOvercommitClass, ok := old.(*OvercommitClass)
82-
if !ok {
83-
return nil, fmt.Errorf("failed to cast old object to OvercommitClass")
84-
}
8572
overcommitclasslog.Info("validate update", "name", oldOvercommitClass.Name)
8673

87-
// Convert new runtime.Object to *OvercommitClass
88-
newOvercommitClass, ok := new.(*OvercommitClass)
89-
if !ok {
90-
return nil, fmt.Errorf("failed to cast new object to OvercommitClass")
91-
}
92-
9374
if !oldOvercommitClass.Spec.IsDefault {
9475
err := isClassDefault(*newOvercommitClass, v.Client)
9576
if err != nil {
@@ -114,11 +95,7 @@ func (v *OvercommitClassValidator) ValidateUpdate(ctx context.Context, old runti
11495
}
11596

11697
// ValidateDelete implements webhook.Validator so a webhook will be registered for the type
117-
func (v *OvercommitClassValidator) ValidateDelete(ctx context.Context, obj runtime.Object) (admission.Warnings, error) {
118-
overcommitClass, ok := obj.(*OvercommitClass)
119-
if !ok {
120-
return nil, fmt.Errorf("failed to cast object to OvercommitClass")
121-
}
98+
func (v *OvercommitClassValidator) ValidateDelete(ctx context.Context, overcommitClass *OvercommitClass) (admission.Warnings, error) {
12299
overcommitclasslog.Info("validate delete", "name", overcommitClass.Name)
123100

124101
return nil, nil

api/v1alphav1/zz_generated.deepcopy.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/overcommit.inditex.dev_overcommitclasses.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,10 @@ spec:
9999
operator:
100100
description: |-
101101
Operator represents a key's relationship to the value.
102-
Valid operators are Exists and Equal. Defaults to Equal.
102+
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
103103
Exists is equivalent to wildcard for value, so that a pod can
104104
tolerate all taints of a particular category.
105+
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
105106
type: string
106107
tolerationSeconds:
107108
description: |-

config/crd/bases/overcommit.inditex.dev_overcommits.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,10 @@ spec:
7878
operator:
7979
description: |-
8080
Operator represents a key's relationship to the value.
81-
Valid operators are Exists and Equal. Defaults to Equal.
81+
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
8282
Exists is equivalent to wildcard for value, so that a pod can
8383
tolerate all taints of a particular category.
84+
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
8485
type: string
8586
tolerationSeconds:
8687
description: |-

go.mod

Lines changed: 80 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,113 @@
11
module github.com/InditexTech/k8s-overcommit-operator
22

3-
go 1.24.0
3+
go 1.26.2
44

55
require (
6-
github.com/cert-manager/cert-manager v1.16.2
7-
github.com/onsi/ginkgo/v2 v2.22.2
8-
github.com/onsi/gomega v1.36.2
9-
github.com/prometheus/client_golang v1.20.5
6+
github.com/cert-manager/cert-manager v1.20.0-alpha.1
7+
github.com/onsi/ginkgo/v2 v2.28.0
8+
github.com/onsi/gomega v1.39.1
9+
github.com/prometheus/client_golang v1.23.2
1010
github.com/stretchr/testify v1.11.1
11-
k8s.io/api v0.32.1
12-
k8s.io/apimachinery v0.32.1
13-
k8s.io/client-go v0.32.1
14-
sigs.k8s.io/controller-runtime v0.19.0
11+
k8s.io/api v0.35.0
12+
k8s.io/apimachinery v0.35.0
13+
k8s.io/client-go v0.35.0
14+
sigs.k8s.io/controller-runtime v0.23.3
1515
)
1616

1717
require (
18-
cel.dev/expr v0.19.1 // indirect
18+
cel.dev/expr v0.25.1 // indirect
19+
github.com/Masterminds/semver/v3 v3.4.0 // indirect
1920
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
20-
github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect
2121
github.com/beorn7/perks v1.0.1 // indirect
2222
github.com/blang/semver/v4 v4.0.0 // indirect
23-
github.com/cenkalti/backoff/v4 v4.3.0 // indirect
23+
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
2424
github.com/cespare/xxhash/v2 v2.3.0 // indirect
2525
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
26-
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
26+
github.com/emicklei/go-restful/v3 v3.13.0 // indirect
2727
github.com/evanphx/json-patch/v5 v5.9.11 // indirect
2828
github.com/felixge/httpsnoop v1.0.4 // indirect
29-
github.com/fsnotify/fsnotify v1.8.0 // indirect
30-
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
29+
github.com/fsnotify/fsnotify v1.9.0 // indirect
30+
github.com/fxamacker/cbor/v2 v2.9.1 // indirect
3131
github.com/go-logr/logr v1.4.3 // indirect
3232
github.com/go-logr/stdr v1.2.2 // indirect
3333
github.com/go-logr/zapr v1.3.0 // indirect
34-
github.com/go-openapi/jsonpointer v0.21.0 // indirect
35-
github.com/go-openapi/jsonreference v0.21.0 // indirect
36-
github.com/go-openapi/swag v0.23.0 // indirect
34+
github.com/go-openapi/jsonpointer v0.23.1 // indirect
35+
github.com/go-openapi/jsonreference v0.21.5 // indirect
36+
github.com/go-openapi/swag v0.26.0 // indirect
37+
github.com/go-openapi/swag/cmdutils v0.26.0 // indirect
38+
github.com/go-openapi/swag/conv v0.26.0 // indirect
39+
github.com/go-openapi/swag/fileutils v0.26.0 // indirect
40+
github.com/go-openapi/swag/jsonname v0.26.0 // indirect
41+
github.com/go-openapi/swag/jsonutils v0.26.0 // indirect
42+
github.com/go-openapi/swag/loading v0.26.0 // indirect
43+
github.com/go-openapi/swag/mangling v0.26.0 // indirect
44+
github.com/go-openapi/swag/netutils v0.26.0 // indirect
45+
github.com/go-openapi/swag/stringutils v0.26.0 // indirect
46+
github.com/go-openapi/swag/typeutils v0.26.0 // indirect
47+
github.com/go-openapi/swag/yamlutils v0.26.0 // indirect
3748
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
38-
github.com/gogo/protobuf v1.3.2 // indirect
39-
github.com/golang/protobuf v1.5.4 // indirect
40-
github.com/google/cel-go v0.22.1 // indirect
41-
github.com/google/gnostic-models v0.6.9 // indirect
49+
github.com/google/btree v1.1.3 // indirect
50+
github.com/google/cel-go v0.28.0 // indirect
51+
github.com/google/gnostic-models v0.7.1 // indirect
4252
github.com/google/go-cmp v0.7.0 // indirect
43-
github.com/google/gofuzz v1.2.0 // indirect
44-
github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
53+
github.com/google/pprof v0.0.0-20260115054156-294ebfa9ad83 // indirect
4554
github.com/google/uuid v1.6.0 // indirect
46-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 // indirect
55+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
4756
github.com/inconshreveable/mousetrap v1.1.0 // indirect
48-
github.com/josharian/intern v1.0.0 // indirect
4957
github.com/json-iterator/go v1.1.12 // indirect
50-
github.com/klauspost/compress v1.17.11 // indirect
58+
github.com/klauspost/compress v1.18.5 // indirect
5159
github.com/kylelemons/godebug v1.1.0 // indirect
52-
github.com/mailru/easyjson v0.9.0 // indirect
5360
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
54-
github.com/modern-go/reflect2 v1.0.2 // indirect
61+
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
5562
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
56-
github.com/pkg/errors v0.9.1 // indirect
5763
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
58-
github.com/prometheus/client_model v0.6.1 // indirect
59-
github.com/prometheus/common v0.61.0 // indirect
60-
github.com/prometheus/procfs v0.15.1 // indirect
61-
github.com/spf13/cobra v1.9.1 // indirect
62-
github.com/spf13/pflag v1.0.6 // indirect
63-
github.com/stoewer/go-strcase v1.3.0 // indirect
64+
github.com/prometheus/client_model v0.6.2 // indirect
65+
github.com/prometheus/common v0.67.5 // indirect
66+
github.com/prometheus/procfs v0.20.1 // indirect
67+
github.com/spf13/cobra v1.10.2 // indirect
68+
github.com/spf13/pflag v1.0.10 // indirect
6469
github.com/x448/float16 v0.8.4 // indirect
6570
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
66-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 // indirect
67-
go.opentelemetry.io/otel v1.40.0 // indirect
68-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
69-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
70-
go.opentelemetry.io/otel/metric v1.40.0 // indirect
71-
go.opentelemetry.io/otel/sdk v1.40.0 // indirect
72-
go.opentelemetry.io/otel/trace v1.40.0 // indirect
73-
go.opentelemetry.io/proto/otlp v1.4.0 // indirect
71+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.68.0 // indirect
72+
go.opentelemetry.io/otel v1.43.0 // indirect
73+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.43.0 // indirect
74+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.43.0 // indirect
75+
go.opentelemetry.io/otel/metric v1.43.0 // indirect
76+
go.opentelemetry.io/otel/sdk v1.43.0 // indirect
77+
go.opentelemetry.io/otel/trace v1.43.0 // indirect
78+
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
7479
go.uber.org/multierr v1.11.0 // indirect
75-
go.uber.org/zap v1.27.0 // indirect
76-
golang.org/x/exp v0.0.0-20241217172543-b2144cdd0a67 // indirect
77-
golang.org/x/net v0.38.0 // indirect
78-
golang.org/x/oauth2 v0.27.0 // indirect
79-
golang.org/x/sync v0.12.0 // indirect
80-
golang.org/x/sys v0.40.0 // indirect
81-
golang.org/x/term v0.30.0 // indirect
82-
golang.org/x/text v0.23.0 // indirect
83-
golang.org/x/time v0.10.0 // indirect
84-
golang.org/x/tools v0.31.0 // indirect
85-
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
86-
google.golang.org/genproto/googleapis/api v0.0.0-20241219192143-6b3ec007d9bb // indirect
87-
google.golang.org/genproto/googleapis/rpc v0.0.0-20250219182151-9fdb1cabc7b2 // indirect
88-
google.golang.org/grpc v1.70.0 // indirect
89-
google.golang.org/protobuf v1.36.5 // indirect
90-
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
80+
go.uber.org/zap v1.28.0 // indirect
81+
go.yaml.in/yaml/v2 v2.4.4 // indirect
82+
go.yaml.in/yaml/v3 v3.0.4 // indirect
83+
golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect
84+
golang.org/x/mod v0.35.0 // indirect
85+
golang.org/x/net v0.53.0 // indirect
86+
golang.org/x/oauth2 v0.36.0 // indirect
87+
golang.org/x/sync v0.20.0 // indirect
88+
golang.org/x/sys v0.43.0 // indirect
89+
golang.org/x/term v0.42.0 // indirect
90+
golang.org/x/text v0.36.0 // indirect
91+
golang.org/x/time v0.15.0 // indirect
92+
golang.org/x/tools v0.44.0 // indirect
93+
gomodules.xyz/jsonpatch/v2 v2.5.0 // indirect
94+
google.golang.org/genproto/googleapis/api v0.0.0-20260427160629-7cedc36a6bc4 // indirect
95+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260427160629-7cedc36a6bc4 // indirect
96+
google.golang.org/grpc v1.80.0 // indirect
97+
google.golang.org/protobuf v1.36.12-0.20260120151049-f2248ac996af // indirect
98+
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
9199
gopkg.in/inf.v0 v0.9.1 // indirect
92100
gopkg.in/yaml.v3 v3.0.1 // indirect
93-
k8s.io/apiextensions-apiserver v0.32.1 // indirect
94-
k8s.io/apiserver v0.32.1 // indirect
95-
k8s.io/component-base v0.32.1 // indirect
96-
k8s.io/klog/v2 v2.130.1 // indirect
97-
k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect
98-
k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect
99-
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.1 // indirect
100-
sigs.k8s.io/gateway-api v1.1.0 // indirect
101-
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
102-
sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect
103-
sigs.k8s.io/yaml v1.4.0 // indirect
101+
k8s.io/apiextensions-apiserver v0.35.0 // indirect
102+
k8s.io/apiserver v0.35.0 // indirect
103+
k8s.io/component-base v0.35.0 // indirect
104+
k8s.io/klog/v2 v2.140.0 // indirect
105+
k8s.io/kube-openapi v0.0.0-20260427204847-8949caaa1199 // indirect
106+
k8s.io/utils v0.0.0-20260319190234-28399d86e0b5 // indirect
107+
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect
108+
sigs.k8s.io/gateway-api v1.5.0-rc.1 // indirect
109+
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
110+
sigs.k8s.io/randfill v1.0.0 // indirect
111+
sigs.k8s.io/structured-merge-diff/v6 v6.4.0 // indirect
112+
sigs.k8s.io/yaml v1.6.0 // indirect
104113
)

0 commit comments

Comments
 (0)