Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into delete-gardener-cr
Browse files Browse the repository at this point in the history
  • Loading branch information
koala7659 committed Aug 1, 2024
2 parents a8e5b04 + d6e2ae7 commit 46cf23b
Show file tree
Hide file tree
Showing 28 changed files with 363 additions and 51 deletions.
5 changes: 3 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ FROM golang:1.22.5 as builder
ARG TARGETOS
ARG TARGETARCH

WORKDIR /workspace
WORKDIR /project_workspace
# Copy the Go Modules manifests
COPY go.mod go.mod
COPY go.sum go.sum
Expand All @@ -27,7 +27,8 @@ RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o ma
# Refer to https://github.com/GoogleContainerTools/distroless for more details
FROM gcr.io/distroless/static:nonroot
WORKDIR /
COPY --from=builder /workspace/manager .
COPY --from=builder /project_workspace/manager .
COPY converter_config.json .
USER 65532:65532

ENTRYPOINT ["/manager"]
2 changes: 1 addition & 1 deletion cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ func main() {
flag.DurationVar(&expirationTime, "kubeconfig-expiration-time", defaultExpirationTime, "Dynamic kubeconfig expiration time")
flag.DurationVar(&gardenerRequestTimeout, "gardener-request-timeout", defaultGardenerRequestTimeout, "Timeout duration for requests to Gardener")
flag.BoolVar(&enableRuntimeReconciler, "runtime-reconciler-enabled", defaultRuntimeReconcilerEnabled, "Feature flag for all runtime reconciler functionalities")
flag.StringVar(&converterConfigFilepath, "converter-config-filepath", "hack/converter_config.json", "A file path to the gardener shoot converter configuration.")
flag.StringVar(&converterConfigFilepath, "converter-config-filepath", "converter_config.json", "A file path to the gardener shoot converter configuration.")
flag.BoolVar(&shootSpecDumpEnabled, "shoot-spec-dump-enabled", false, "Feature flag to allow persisting specs of created shoots")

opts := zap.Options{
Expand Down
4 changes: 3 additions & 1 deletion config/manager/converter_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ data:
converter_config_aws.json: |
{
"kubernetes": {
"defaultVersion": "1.29"
"defaultVersion": "1.29",
"enableKubernetesVersionAutoUpdate": true,
"enableMachineImageVersionAutoUpdate": false
},
"dns": {
"secretName": "aws-route53-secret-dev",
Expand Down
4 changes: 3 additions & 1 deletion hack/converter_config.json → converter_config.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
"kubernetes": {
"defaultVersion": "1.29"
"defaultVersion": "1.29",
"enableKubernetesVersionAutoUpdate": true,
"enableMachineImageVersionAutoUpdate": false
},
"dns": {
"secretName": "aws-route53-secret-dev",
Expand Down
10 changes: 5 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,21 @@ module github.com/kyma-project/infrastructure-manager
go 1.22.5

require (
github.com/gardener/gardener v1.99.1
github.com/gardener/gardener v1.100.0
github.com/gardener/gardener-extension-provider-aws v1.56.1
github.com/gardener/gardener-extension-provider-gcp v1.37.0
github.com/gardener/gardener-extension-provider-openstack v1.41.0
github.com/go-logr/logr v1.4.2
github.com/go-playground/validator/v10 v10.22.0
github.com/onsi/ginkgo/v2 v2.19.0
github.com/onsi/gomega v1.33.1
github.com/onsi/ginkgo/v2 v2.19.1
github.com/onsi/gomega v1.34.1
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.19.1
github.com/stretchr/testify v1.9.0
k8s.io/api v0.30.3
k8s.io/apimachinery v0.30.3
k8s.io/client-go v0.30.3
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8
sigs.k8s.io/controller-runtime v0.18.4
sigs.k8s.io/yaml v1.4.0
)
Expand Down Expand Up @@ -65,7 +66,7 @@ require (
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
golang.org/x/crypto v0.25.0 // indirect
golang.org/x/exp v0.0.0-20240707233637-46b078467d37 // indirect
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
golang.org/x/net v0.27.0 // indirect
golang.org/x/oauth2 v0.21.0 // indirect
golang.org/x/sys v0.22.0 // indirect
Expand All @@ -81,7 +82,6 @@ require (
k8s.io/apiextensions-apiserver v0.30.1 // indirect
k8s.io/klog/v2 v2.120.1 // indirect
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 // indirect
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
)
Expand Down
20 changes: 10 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nos
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
github.com/gabriel-vasile/mimetype v1.4.3 h1:in2uUcidCuFcDKtdcBxlR0rJ1+fsokWf+uqxgUFjbI0=
github.com/gabriel-vasile/mimetype v1.4.3/go.mod h1:d8uq/6HKRL6CGdk+aubisF/M5GcPfT7nKyLpA0lbSSk=
github.com/gardener/gardener v1.99.1 h1:c/wVXYgt4j7eHCMwxpQPPpaLXt1BY/IPYStfCtNsR8Q=
github.com/gardener/gardener v1.99.1/go.mod h1:XboPwJptOg9ZfXTjuohGk7X8kxnF0o88gJnz6Ed7Vqc=
github.com/gardener/gardener v1.100.0 h1:vN8LH7nW8GZUOReaj4DuIUTCLEI+5AeYVPx/J/xo8gM=
github.com/gardener/gardener v1.100.0/go.mod h1:OzCK5XFSNma6u1xUDYDpwbgJwmpo9WVVEu/pR21sarM=
github.com/gardener/gardener-extension-provider-aws v1.56.1 h1:aoPCFOKm1gZA/qYlXnoPCtfTYmGxbNHCPUSmq5BLAEc=
github.com/gardener/gardener-extension-provider-aws v1.56.1/go.mod h1:kyUkLDvIEbxg5Kv4XsOa0CBFxbwmf5KFeKsJ/oVcijw=
github.com/gardener/gardener-extension-provider-gcp v1.37.0 h1:lRvh4syK7h8JzG9tVCI+O7Q1vEvXuK7DGs6vAaoQ1Pw=
Expand Down Expand Up @@ -100,10 +100,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA=
github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To=
github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
github.com/onsi/ginkgo/v2 v2.19.1 h1:QXgq3Z8Crl5EL1WBAC98A5sEBHARrAJNzAmMxzLcRF0=
github.com/onsi/ginkgo/v2 v2.19.1/go.mod h1:O3DtEWQkPa/F7fBMgmZQKKsluAy8pd3rEQdrjkPb9zA=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
Expand Down Expand Up @@ -143,8 +143,8 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM=
golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30=
golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M=
golang.org/x/exp v0.0.0-20240707233637-46b078467d37 h1:uLDX+AfeFCct3a2C7uIWBKMJIR3CJMhcgfrUAqjRK6w=
golang.org/x/exp v0.0.0-20240707233637-46b078467d37/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ=
Expand Down Expand Up @@ -191,8 +191,8 @@ k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw=
k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag=
k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98=
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak=
k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A=
k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw=
sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg=
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
Expand Down
23 changes: 23 additions & 0 deletions hack/shoot-comparator/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
FROM golang:1.22.5-alpine AS build
ARG TARGETOS
ARG TARGETARCH

WORKDIR /workdir

COPY go.mod go.mod
COPY go.sum go.sum
RUN go mod download

COPY cmd/ cmd/
COPY internal/ internal/
COPY pkg/ pkg/

ARG BIN
RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -a -o shoot-comparator cmd/main.go

FROM gcr.io/distroless/static:nonroot
WORKDIR /
COPY --from=build /workdir/shoot-comparator .
USER 65532:65532

ENTRYPOINT ["/shoot-comparator"]
4 changes: 2 additions & 2 deletions hack/shoot-comparator/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ For more details, please refer to the following issues:

## Build
```
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o ./bin/comparator ./cmd
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o ./bin/shoot-comparator ./cmd
```

## Run

To compare files, execute the following command:
```
comparator files <shoot file generated by Provisioner> <shoot file generated by KIM>
shoot-comparator files <shoot file generated by Provisioner> <shoot file generated by KIM>
```
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (

func sFnCreateShoot(ctx context.Context, m *fsm, s *systemState) (stateFn, *ctrl.Result, error) {
m.log.Info("Create shoot state")

newShoot, err := convertShoot(&s.instance, m.ConverterConfig)
if err != nil {
m.log.Error(err, "Failed to convert Runtime instance to shoot object")
Expand Down
3 changes: 2 additions & 1 deletion internal/controller/runtime/fsm/runtime_fsm_delete_shoot.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"

imv1 "github.com/kyma-project/infrastructure-manager/api/v1"
"k8s.io/utils/ptr"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
)
Expand All @@ -26,7 +27,7 @@ func sFnDeleteShoot(ctx context.Context, m *fsm, s *systemState) (stateFn, *ctrl

err := m.ShootClient.Patch(ctx, s.shoot, client.Apply, &client.PatchOptions{
FieldManager: "kim",
Force: ptrTo(true),
Force: ptr.To(true),
})

if err != nil {
Expand Down
7 changes: 2 additions & 5 deletions internal/controller/runtime/fsm/runtime_fsm_patch_shoot.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
imv1 "github.com/kyma-project/infrastructure-manager/api/v1"
"github.com/kyma-project/infrastructure-manager/internal/gardener/shoot"
gardener_shoot "github.com/kyma-project/infrastructure-manager/internal/gardener/shoot"
"k8s.io/utils/ptr"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
)
Expand All @@ -24,7 +25,7 @@ func sFnPatchExistingShoot(ctx context.Context, m *fsm, s *systemState) (stateFn

err = m.ShootClient.Patch(ctx, &updatedShoot, client.Apply, &client.PatchOptions{
FieldManager: "kim",
Force: ptrTo(true),
Force: ptr.To(true),
})

if err != nil {
Expand Down Expand Up @@ -84,7 +85,3 @@ func updateStatePendingWithErrorAndStop(instance *imv1.Runtime,
instance.UpdateStatePending(c, r, "False", msg)
return updateStatusAndStop()
}

func ptrTo[T any](v T) *T {
return &v
}
23 changes: 19 additions & 4 deletions internal/controller/runtime/fsm/runtime_fsm_persist_shoot.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import (
"io"
"os"

gardener "github.com/gardener/gardener/pkg/apis/core/v1beta1"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/yaml"
)
Expand All @@ -19,7 +18,7 @@ func getWriterForFilesystem(filePath string) (io.Writer, error) {
return file, nil
}

func persist(path string, s *gardener.Shoot, saveFunc writerGetter) error {
func persist(path string, s interface{}, saveFunc writerGetter) error {
writer, err := saveFunc(path)
if err != nil {
return fmt.Errorf("unable to create file: %w", err)
Expand All @@ -37,9 +36,25 @@ func persist(path string, s *gardener.Shoot, saveFunc writerGetter) error {
}

func sFnDumpShootSpec(_ context.Context, m *fsm, s *systemState) (stateFn, *ctrl.Result, error) {
path := fmt.Sprintf("%s/%s-%s.yaml", m.PVCPath, s.shoot.Namespace, s.shoot.Name)
if err := persist(path, s.shoot, m.writerProvider); err != nil {
paths := createFilesPath(m.PVCPath, s.shoot.Namespace, s.shoot.Name)

shootCp := s.shoot.DeepCopy()
runtimeCp := s.instance.DeepCopy()
shootCp.ManagedFields = nil

if err := persist(paths["shoot"], shootCp, m.writerProvider); err != nil {
return updateStatusAndStopWithError(err)
}

if err := persist(paths["runtime"], runtimeCp, m.writerProvider); err != nil {
return updateStatusAndStopWithError(err)
}
return updateStatusAndRequeueAfter(gardenerRequeueDuration)
}

func createFilesPath(pvcPath, namespace, name string) map[string]string {
m := make(map[string]string)
m["shoot"] = fmt.Sprintf("%s/%s-%s-shootCR.yaml", pvcPath, namespace, name)
m["runtime"] = fmt.Sprintf("%s/%s-%s-runtimeCR.yaml", pvcPath, namespace, name)
return m
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,13 @@ var _ = Describe("KIM sFnPersist", func() {
testCtx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()

expectedData, err := yaml.Marshal(&testing.ShootNoDNS)
shootWrite, err := yaml.Marshal(&testing.ShootNoDNS)
runtimeWrite, err := yaml.Marshal(&testing.RuntimeOnlyName)
expectedData := append(shootWrite, runtimeWrite...)
Expect(err).ShouldNot(HaveOccurred())

It("should persist shoot data", func() {
next, _, err := sFnDumpShootSpec(testCtx, must(newFakeFSM, withStorageWriter(testWriterGetter)), &systemState{shoot: &testing.ShootNoDNS})
next, _, err := sFnDumpShootSpec(testCtx, must(newFakeFSM, withStorageWriter(testWriterGetter)), &systemState{shoot: &testing.ShootNoDNS, instance: testing.RuntimeOnlyName})
Expect(err).To(BeNil())
Expect(next).To(haveName("sFnUpdateStatus"))
Expect(expectedData).To(Equal(b.Bytes()))
Expand Down
11 changes: 11 additions & 0 deletions internal/controller/runtime/fsm/testing/shoot.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package testing

import (
gardener "github.com/gardener/gardener/pkg/apis/core/v1beta1"
v1 "github.com/kyma-project/infrastructure-manager/api/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

Expand All @@ -13,6 +14,16 @@ var (
},
}

RuntimeOnlyName = v1.Runtime{
ObjectMeta: metav1.ObjectMeta{
Name: "test-instance",
Namespace: "default",
},
Spec: v1.RuntimeSpec{
Shoot: v1.RuntimeShoot{Name: "test-shoot"},
},
}

ShootNoDNSDomain = gardener.Shoot{
ObjectMeta: metav1.ObjectMeta{
Name: "test-instance",
Expand Down
9 changes: 3 additions & 6 deletions internal/controller/runtime/suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ import (
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
clienttesting "k8s.io/client-go/testing"
"k8s.io/utils/ptr"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
Expand Down Expand Up @@ -179,7 +180,7 @@ func fixShootsSequenceForProvisioning(shoot *gardener_api.Shoot) []*gardener_api
dnsShoot := initialisedShoot.DeepCopy()

dnsShoot.Spec.DNS = &gardener_api.DNS{
Domain: ptrTo("test.domain"),
Domain: ptr.To("test.domain"),
}

pendingShoot := dnsShoot.DeepCopy()
Expand Down Expand Up @@ -208,7 +209,7 @@ func fixShootsSequenceForUpdate(shoot *gardener_api.Shoot) []*gardener_api.Shoot
pendingShoot := shoot.DeepCopy()

pendingShoot.Spec.DNS = &gardener_api.DNS{
Domain: ptrTo("test.domain"),
Domain: ptr.To("test.domain"),
}

pendingShoot.Status = gardener_api.ShootStatus{
Expand Down Expand Up @@ -252,7 +253,3 @@ func fixConverterConfigForTests() gardener_shoot.ConverterConfig {
},
}
}

func ptrTo[T any](v T) *T {
return &v
}
7 changes: 6 additions & 1 deletion internal/gardener/shoot/converter.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ type DNSConfig struct {
}

type KubernetesConfig struct {
DefaultVersion string `json:"defaultVersion" validate:"required"`
DefaultVersion string `json:"defaultVersion" validate:"required"`
EnableKubernetesVersionAutoUpdate bool `json:"enableKubernetesVersionAutoUpdate"`
EnableMachineImageVersionAutoUpdate bool `json:"enableMachineImageVersionVersionAutoUpdate"`
}

type ReaderGetter = func() (io.Reader, error)
Expand Down Expand Up @@ -72,7 +74,10 @@ func NewConverter(config ConverterConfig) Converter {
extender.ExtendWithOIDC,
extender.ExtendWithCloudProfile,
extender.ExtendWithNetworkFilter,
extender.ExtendWithCertConfig,
extender.ExtendWithExposureClassName,
extender.ExtendWithTolerations,
extender.NewMaintenanceExtender(config.Kubernetes.EnableKubernetesVersionAutoUpdate, config.Kubernetes.EnableMachineImageVersionAutoUpdate),
}

return Converter{
Expand Down
Loading

0 comments on commit 46cf23b

Please sign in to comment.