Skip to content

Commit 03c8d99

Browse files
authored
Update depdendencies to gardener 1.75.x (#33)
* Update gardener dependencies * Replace removed Inject() functions * replace InjectDecoder
1 parent 9e8cefe commit 03c8d99

File tree

10 files changed

+137
-384
lines changed

10 files changed

+137
-384
lines changed

.golangci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,4 +126,4 @@ run:
126126
issues-exit-code: 1
127127
tests: true
128128
concurrency: 4
129-
deadline: 10m
129+
deadline: 10m

cmd/gardener-extension/app/app.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ func (o *Options) run(ctx context.Context) error {
9494
o.healthOptions.Completed().Apply(&healthcheck.DefaultAddOptions.Controller)
9595
o.reconcileOptions.Completed().Apply(&controller.DefaultAddOptions.IgnoreOperationAnnotation)
9696

97-
if err := o.controllerSwitches.Completed().AddToManager(mgr); err != nil {
97+
if err := o.controllerSwitches.Completed().AddToManager(ctx, mgr); err != nil {
9898
return fmt.Errorf("could not add controllers to manager: %s", err)
9999
}
100100

cmd/webhook/main.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"sigs.k8s.io/controller-runtime/pkg/healthz"
1313
"sigs.k8s.io/controller-runtime/pkg/log/zap"
1414
"sigs.k8s.io/controller-runtime/pkg/webhook"
15+
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
1516

1617
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
1718

@@ -77,8 +78,13 @@ func main() {
7778

7879
allowedCidrs := strings.Split(additionalAllowedCidrs, ",")
7980

81+
decoder, err := admission.NewDecoder(mgr.GetScheme())
82+
if err != nil {
83+
setupLog.Error(err, "unable to create decoder")
84+
}
8085
server.Register("/mutate", &webhook.Admission{Handler: &aclwebhook.EnvoyFilterWebhook{
8186
Client: mgr.GetClient(),
87+
Decoder: decoder,
8288
EnvoyFilterService: envoyfilters.EnvoyFilterService{},
8389
WebhookConfig: aclwebhook.Config{AdditionalAllowedCidrs: allowedCidrs},
8490
}})

go.mod

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,11 @@ module github.com/stackitcloud/gardener-extension-acl
22

33
go 1.21
44

5-
replace (
6-
github.com/gardener/gardener => github.com/gardener/gardener v1.73.1
7-
k8s.io/api => k8s.io/api v0.26.6
8-
k8s.io/apimachinery => k8s.io/apimachinery v0.26.6
9-
k8s.io/apiserver => k8s.io/apiserver v0.26.6
10-
k8s.io/client-go => k8s.io/client-go v0.26.6
11-
k8s.io/code-generator => k8s.io/code-generator v0.26.6
12-
k8s.io/component-base => k8s.io/component-base v0.26.6
13-
k8s.io/helm => k8s.io/helm v2.13.1+incompatible
14-
sigs.k8s.io/controller-runtime => sigs.k8s.io/controller-runtime v0.14.5
15-
)
5+
replace k8s.io/client-go => k8s.io/client-go v0.26.10
166

177
require (
188
github.com/ahmetb/gen-crd-api-reference-docs v0.3.0
19-
github.com/gardener/gardener v1.65.0
9+
github.com/gardener/gardener v1.75.2
2010
github.com/gardener/gardener-extension-provider-openstack v1.30.1-0.20221215131400-b390fb780945
2111
github.com/go-logr/logr v1.2.4
2212
github.com/golang/mock v1.6.0
@@ -30,12 +20,12 @@ require (
3020
gomodules.xyz/jsonpatch/v2 v2.2.0
3121
gopkg.in/yaml.v3 v3.0.1
3222
istio.io/client-go v1.17.1
33-
k8s.io/api v0.26.6
34-
k8s.io/apiextensions-apiserver v0.26.3
35-
k8s.io/apimachinery v0.26.6
23+
k8s.io/api v0.26.10
24+
k8s.io/apiextensions-apiserver v0.26.10
25+
k8s.io/apimachinery v0.26.10
3626
k8s.io/client-go v11.0.1-0.20190409021438-1a26190bd76a+incompatible
37-
k8s.io/code-generator v0.26.3
38-
k8s.io/component-base v0.26.6
27+
k8s.io/code-generator v0.26.10
28+
k8s.io/component-base v0.26.10
3929
k8s.io/utils v0.0.0-20221128185143-99ec85e7a448
4030
sigs.k8s.io/controller-runtime v0.14.6
4131
)
@@ -47,10 +37,10 @@ require (
4737
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
4838
github.com/beorn7/perks v1.0.1 // indirect
4939
github.com/bronze1man/yaml2json v0.0.0-20211227013850-8972abeaea25 // indirect
50-
github.com/cespare/xxhash/v2 v2.1.2 // indirect
40+
github.com/cespare/xxhash/v2 v2.2.0 // indirect
5141
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
5242
github.com/davecgh/go-spew v1.1.1 // indirect
53-
github.com/emicklei/go-restful/v3 v3.9.0 // indirect
43+
github.com/emicklei/go-restful/v3 v3.10.1 // indirect
5444
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
5545
github.com/fatih/color v1.13.0 // indirect
5646
github.com/fluent/fluent-operator/v2 v2.2.0 // indirect
@@ -110,13 +100,13 @@ require (
110100
golang.org/x/crypto v0.14.0 // indirect
111101
golang.org/x/mod v0.9.0 // indirect
112102
golang.org/x/net v0.17.0 // indirect
113-
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
103+
golang.org/x/oauth2 v0.4.0 // indirect
114104
golang.org/x/sys v0.13.0 // indirect
115105
golang.org/x/term v0.13.0 // indirect
116106
golang.org/x/text v0.13.0 // indirect
117107
golang.org/x/time v0.3.0 // indirect
118108
google.golang.org/appengine v1.6.7 // indirect
119-
google.golang.org/genproto v0.0.0-20221018160656-63c7b68cfc55 // indirect
109+
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
120110
google.golang.org/protobuf v1.28.1 // indirect
121111
gopkg.in/inf.v0 v0.9.1 // indirect
122112
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect

go.sum

Lines changed: 93 additions & 326 deletions
Large diffs are not rendered by default.

pkg/controller/actuator.go

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ import (
4848
"k8s.io/apimachinery/pkg/types"
4949
"k8s.io/client-go/rest"
5050
"sigs.k8s.io/controller-runtime/pkg/client"
51+
"sigs.k8s.io/controller-runtime/pkg/manager"
5152
)
5253

5354
const (
@@ -75,10 +76,13 @@ var (
7576
)
7677

7778
// NewActuator returns an actuator responsible for Extension resources.
78-
func NewActuator(cfg config.Config) extension.Actuator {
79+
func NewActuator(mgr manager.Manager, cfg config.Config) extension.Actuator {
7980
return &actuator{
8081
extensionConfig: cfg,
8182
envoyfilterService: envoyfilters.EnvoyFilterService{},
83+
client: mgr.GetClient(),
84+
config: mgr.GetConfig(),
85+
decoder: serializer.NewCodecFactory(mgr.GetScheme(), serializer.EnableStrict).UniversalDecoder(),
8286
}
8387
}
8488

@@ -229,24 +233,6 @@ func (a *actuator) Migrate(ctx context.Context, log logr.Logger, ex *extensionsv
229233
return a.Delete(ctx, log, ex)
230234
}
231235

232-
// InjectConfig injects the rest config to this actuator.
233-
func (a *actuator) InjectConfig(cfg *rest.Config) error {
234-
a.config = cfg
235-
return nil
236-
}
237-
238-
// InjectClient injects the controller runtime client into the reconciler.
239-
func (a *actuator) InjectClient(c client.Client) error {
240-
a.client = c
241-
return nil
242-
}
243-
244-
// InjectScheme injects the given scheme into the reconciler.
245-
func (a *actuator) InjectScheme(scheme *runtime.Scheme) error {
246-
a.decoder = serializer.NewCodecFactory(scheme, serializer.EnableStrict).UniversalDecoder()
247-
return nil
248-
}
249-
250236
func (a *actuator) reconcileVPNEnvoyFilter(
251237
ctx context.Context,
252238
alwaysAllowedCIDRs []string,

pkg/controller/add.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
package controller
1717

1818
import (
19+
"context"
20+
1921
controllerconfig "github.com/stackitcloud/gardener-extension-acl/pkg/controller/config"
2022

2123
"github.com/gardener/gardener/extensions/pkg/controller/extension"
@@ -45,20 +47,20 @@ type AddOptions struct {
4547
}
4648

4749
// AddToManager adds a controller with the default Options to the given Controller Manager.
48-
func AddToManager(mgr manager.Manager) error {
49-
return AddToManagerWithOptions(mgr, &DefaultAddOptions)
50+
func AddToManager(ctx context.Context, mgr manager.Manager) error {
51+
return AddToManagerWithOptions(ctx, mgr, &DefaultAddOptions)
5052
}
5153

5254
// AddToManagerWithOptions adds a controller with the given Options to the given manager.
5355
// The opts.Reconciler is being set with a newly instantiated actuator.
54-
func AddToManagerWithOptions(mgr manager.Manager, opts *AddOptions) error {
55-
return extension.Add(mgr, extension.AddArgs{
56-
Actuator: NewActuator(opts.ExtensionConfig),
56+
func AddToManagerWithOptions(ctx context.Context, mgr manager.Manager, opts *AddOptions) error {
57+
return extension.Add(ctx, mgr, extension.AddArgs{
58+
Actuator: NewActuator(mgr, opts.ExtensionConfig),
5759
ControllerOptions: opts.ControllerOptions,
5860
Name: Type + Suffix,
5961
FinalizerSuffix: Type + Suffix,
6062
Resync: 0,
61-
Predicates: extension.DefaultPredicates(DefaultAddOptions.IgnoreOperationAnnotation),
63+
Predicates: extension.DefaultPredicates(ctx, mgr, DefaultAddOptions.IgnoreOperationAnnotation),
6264
Type: Type,
6365
})
6466
}

pkg/controller/healthcheck/add.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
package healthcheck
1717

1818
import (
19+
"context"
20+
1921
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2022
"k8s.io/apimachinery/pkg/util/sets"
2123
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -38,8 +40,9 @@ var (
3840

3941
// RegisterHealthChecks registers health checks for each extension resource
4042
// HealthChecks are grouped by extension (e.g worker), extension.type (e.g aws) and Health Check Type (e.g SystemComponentsHealthy)
41-
func RegisterHealthChecks(mgr manager.Manager, opts *healthcheck.DefaultAddArgs) error {
43+
func RegisterHealthChecks(ctx context.Context, mgr manager.Manager, opts *healthcheck.DefaultAddArgs) error {
4244
return healthcheck.DefaultRegistration(
45+
ctx,
4346
controller.Type,
4447
extensionsv1alpha1.SchemeGroupVersion.WithKind(extensionsv1alpha1.ExtensionResource),
4548
func() client.ObjectList { return &extensionsv1alpha1.ExtensionList{} },
@@ -58,6 +61,6 @@ func RegisterHealthChecks(mgr manager.Manager, opts *healthcheck.DefaultAddArgs)
5861
}
5962

6063
// AddToManager adds a controller with the default Options.
61-
func AddToManager(mgr manager.Manager) error {
62-
return RegisterHealthChecks(mgr, &DefaultAddOptions)
64+
func AddToManager(ctx context.Context, mgr manager.Manager) error {
65+
return RegisterHealthChecks(ctx, mgr, &DefaultAddOptions)
6366
}

pkg/webhook/webhook.go

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,14 @@ type Config struct {
3333
type EnvoyFilterWebhook struct {
3434
Client client.Client
3535
EnvoyFilterService envoyfilters.EnvoyFilterService
36-
decoder *admission.Decoder
36+
Decoder *admission.Decoder
3737
WebhookConfig Config
3838
}
3939

4040
//nolint:gocritic // the signature is forced by kubebuilder
4141
func (e *EnvoyFilterWebhook) Handle(ctx context.Context, req admission.Request) admission.Response {
4242
filter := &istionetworkingClientGo.EnvoyFilter{}
43-
if err := e.decoder.Decode(req, filter); err != nil {
43+
if err := e.Decoder.Decode(req, filter); err != nil {
4444
return admission.Errored(http.StatusInternalServerError, err)
4545
}
4646

@@ -138,8 +138,3 @@ func (e *EnvoyFilterWebhook) createAdmissionResponse(
138138
},
139139
}
140140
}
141-
142-
func (e *EnvoyFilterWebhook) InjectDecoder(d *admission.Decoder) error {
143-
e.decoder = d
144-
return nil
145-
}

pkg/webhook/webhook_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"k8s.io/apimachinery/pkg/runtime"
2121
"k8s.io/utils/pointer"
2222
"sigs.k8s.io/controller-runtime/pkg/client"
23+
"sigs.k8s.io/controller-runtime/pkg/webhook/admission"
2324

2425
istionetworkingClientGo "istio.io/client-go/pkg/apis/networking/v1alpha3"
2526
)
@@ -380,8 +381,11 @@ var _ = Describe("webhook unit test", func() {
380381
})
381382

382383
func getNewWebhook() *EnvoyFilterWebhook {
384+
decoder, err := admission.NewDecoder(clientScheme)
385+
ExpectWithOffset(1, err).NotTo(HaveOccurred())
383386
return &EnvoyFilterWebhook{
384387
Client: k8sClient,
388+
Decoder: decoder,
385389
EnvoyFilterService: envoyfilters.EnvoyFilterService{},
386390
}
387391
}

0 commit comments

Comments
 (0)