Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove dependency injection functions #8217

Merged
merged 31 commits into from
Jul 11, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1c6c40e
Adapt extensions/pkg/controller/backupBucket
ary1992 Jul 2, 2023
cd5a283
Adapt extensions/pkg/controller/backupEntry
ary1992 Jul 2, 2023
740aaa6
Adapt extensions/pkg/controller/containerruntime
ary1992 Jul 2, 2023
d9f9d91
Adapt extensions/pkg/controller/controlplane
ary1992 Jul 2, 2023
fce6840
Adapt extensions/pkg/controller/dnsrecord
ary1992 Jul 3, 2023
9da9198
Adapt extensions/pkg/controller/extension
ary1992 Jul 3, 2023
f6c0bee
Adapt extensions/pkg/controller/healthcheck
ary1992 Jul 3, 2023
cb35ed6
Adapt extensions/pkg/controller/network
ary1992 Jul 3, 2023
759a175
Adapt extensions/pkg/controller/bastion
ary1992 Jul 3, 2023
277d6d6
Adapt extensions/pkg/controller/infrastructure
ary1992 Jul 3, 2023
b7b15c3
Adapt extensions/pkg/controller/operatingsystemconfig
ary1992 Jul 3, 2023
29f591e
Adapt extensions/pkg/controller/controlplane
ary1992 Jul 3, 2023
5baebf7
Adapt pkg/controllerutils/reconciler
ary1992 Jul 3, 2023
4b88283
Adapt extensions/pkg/controller/healthcheck
ary1992 Jul 5, 2023
20753d2
Adapt extensions/pkg/controller/heartbeat
ary1992 Jul 5, 2023
8258246
Adapt extensions/pkg/controller/worker
ary1992 Jul 6, 2023
ea5ad6c
Adapt provider-local
ary1992 Jul 5, 2023
373766e
Add `context.Context` as first argument to AddToManager function
ary1992 Jul 5, 2023
0675aa8
Adapt extensions/pkg/predicate/
ary1992 Jul 5, 2023
07ccef0
Adapt validator, handler and mutator
ary1992 Jul 5, 2023
31a2b17
Adapt `ClientContext` for extensions controller
ary1992 Jul 6, 2023
c90b5ad
Adapt pkg/gardenlet/controller/controllerinstallation
ary1992 Jul 6, 2023
166061c
Adapt pkg/gardenlet/controller/managedseed
ary1992 Jul 6, 2023
0d8f3f5
Adapt pkg/controllermanager/controller/managedseedset
ary1992 Jul 6, 2023
77ff27d
Adapt pkg/controllerutils/mapper
ary1992 Jul 6, 2023
244d9c2
Adapt extensions/pkg/controller/mock/
ary1992 Jul 7, 2023
aa855e7
Adapt tests
ary1992 Jul 6, 2023
dfe3477
[OperationAnnotationWrapper] Address PR review
ary1992 Jul 10, 2023
d67fd0b
Address PR review feedback
ary1992 Jul 10, 2023
e4cc8d0
Drop pkg/controller/common
ary1992 Jul 10, 2023
191b299
[Address PR review feedback] Pass cache instead of manager to `Enqueu…
ary1992 Jul 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
27 changes: 0 additions & 27 deletions extensions/pkg/controller/common/common_suite_test.go

This file was deleted.

106 changes: 0 additions & 106 deletions extensions/pkg/controller/common/context.go

This file was deleted.

13 changes: 6 additions & 7 deletions pkg/provider-local/controller/dnsrecord/actuator.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/manager"

extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller"
"github.com/gardener/gardener/extensions/pkg/controller/common"
"github.com/gardener/gardener/extensions/pkg/controller/dnsrecord"
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
resourcesv1alpha1 "github.com/gardener/gardener/pkg/apis/resources/v1alpha1"
Expand All @@ -40,7 +39,7 @@ import (
const pathEtcHosts = "/etc/hosts"

type actuator struct {
common.RESTConfigContext
client client.Client

lock sync.Mutex
writeToHostsFile bool
Expand All @@ -49,8 +48,8 @@ type actuator struct {
// NewActuator creates a new Actuator that updates the status of the handled DNSRecord resources.
func NewActuator(mgr manager.Manager, writeToHostsFile bool) dnsrecord.Actuator {
return &actuator{
RESTConfigContext: common.NewRESTConfigContext(mgr),
writeToHostsFile: writeToHostsFile,
client: mgr.GetClient(),
writeToHostsFile: writeToHostsFile,
}
}

Expand Down Expand Up @@ -194,7 +193,7 @@ func (a *actuator) updateCoreDNSRewritingRules(ctx context.Context, log logr.Log
}

namespace := &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: dnsRecord.Namespace}}
if err := a.Client().Get(ctx, client.ObjectKeyFromObject(namespace), namespace); err != nil {
if err := a.client.Get(ctx, client.ObjectKeyFromObject(namespace), namespace); err != nil {
return err
}

Expand All @@ -204,14 +203,14 @@ func (a *actuator) updateCoreDNSRewritingRules(ctx context.Context, log logr.Log
}

corednsConfig := &corev1.ConfigMap{ObjectMeta: metav1.ObjectMeta{Name: "coredns-custom", Namespace: "gardener-extension-provider-local-coredns"}}
if err := a.Client().Get(ctx, client.ObjectKeyFromObject(corednsConfig), corednsConfig); err != nil {
if err := a.client.Get(ctx, client.ObjectKeyFromObject(corednsConfig), corednsConfig); err != nil {
return err
}

originalConfig := corednsConfig.DeepCopy()
mutateCorednsRules(corednsConfig, dnsRecord, zone)

return a.Client().Patch(ctx, corednsConfig, client.MergeFrom(originalConfig))
return a.client.Patch(ctx, corednsConfig, client.MergeFrom(originalConfig))
}

func deleteCoreDNSRewriteRule(corednsConfig *corev1.ConfigMap, dnsRecord *extensionsv1alpha1.DNSRecord, zone *string) {
Expand Down
9 changes: 4 additions & 5 deletions pkg/provider-local/controller/infrastructure/actuator.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/manager"

extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller"
"github.com/gardener/gardener/extensions/pkg/controller/common"
"github.com/gardener/gardener/extensions/pkg/controller/infrastructure"
v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants"
extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1"
Expand All @@ -33,13 +32,13 @@ import (
)

type actuator struct {
common.RESTConfigContext
client client.Client
}

// NewActuator creates a new Actuator that updates the status of the handled Infrastructure resources.
func NewActuator(mgr manager.Manager) infrastructure.Actuator {
return &actuator{
RESTConfigContext: common.NewRESTConfigContext(mgr),
client: mgr.GetClient(),
}
}

Expand Down Expand Up @@ -96,7 +95,7 @@ func (a *actuator) Reconcile(ctx context.Context, _ logr.Logger, infrastructure
networkPolicyAllowToMachinePods,
networkPolicyAllowMachinePods,
} {
if err := a.Client().Patch(ctx, obj, client.Apply, local.FieldOwner, client.ForceOwnership); err != nil {
if err := a.client.Patch(ctx, obj, client.Apply, local.FieldOwner, client.ForceOwnership); err != nil {
return err
}
}
Expand All @@ -105,7 +104,7 @@ func (a *actuator) Reconcile(ctx context.Context, _ logr.Logger, infrastructure
}

func (a *actuator) Delete(ctx context.Context, _ logr.Logger, infrastructure *extensionsv1alpha1.Infrastructure, _ *extensionscontroller.Cluster) error {
return kubernetesutils.DeleteObjects(ctx, a.Client(),
return kubernetesutils.DeleteObjects(ctx, a.client,
emptyNetworkPolicy("allow-machine-pods", infrastructure.Namespace),
emptyNetworkPolicy("allow-to-istio-ingress-gateway", infrastructure.Namespace),
emptyNetworkPolicy("allow-to-provider-local-coredns", infrastructure.Namespace),
Expand Down
45 changes: 31 additions & 14 deletions pkg/provider-local/controller/worker/actuator.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ import (
"github.com/go-logr/logr"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/manager"

extensionsconfig "github.com/gardener/gardener/extensions/pkg/apis/config"
extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller"
"github.com/gardener/gardener/extensions/pkg/controller/common"
"github.com/gardener/gardener/extensions/pkg/controller/worker"
"github.com/gardener/gardener/extensions/pkg/controller/worker/genericactuator"
"github.com/gardener/gardener/extensions/pkg/util"
Expand All @@ -44,7 +46,10 @@ import (
)

type delegateFactory struct {
common.RESTConfigContext
client client.Client
decoder runtime.Decoder
restConfig *rest.Config
scheme *runtime.Scheme
}

type actuator struct {
Expand All @@ -61,7 +66,10 @@ func NewActuator(mgr manager.Manager, gardenletManagesMCM bool) (worker.Actuator
imageVector imagevector.ImageVector
chartRendererFactory extensionscontroller.ChartRendererFactory
workerDelegate = &delegateFactory{
RESTConfigContext: common.NewRESTConfigContext(mgr),
client: mgr.GetClient(),
decoder: serializer.NewCodecFactory(mgr.GetScheme(), serializer.EnableStrict).UniversalDecoder(),
restConfig: mgr.GetConfig(),
scheme: mgr.GetScheme(),
}
)

Expand Down Expand Up @@ -93,7 +101,7 @@ func NewActuator(mgr manager.Manager, gardenletManagesMCM bool) (worker.Actuator
}

func (a *actuator) Restore(ctx context.Context, log logr.Logger, worker *extensionsv1alpha1.Worker, cluster *extensionscontroller.Cluster) error {
if err := genericactuator.RestoreWithoutReconcile(ctx, log, a.workerDelegate.Client(), a.workerDelegate, worker, cluster); err != nil {
if err := genericactuator.RestoreWithoutReconcile(ctx, log, a.workerDelegate.client, a.workerDelegate, worker, cluster); err != nil {
return fmt.Errorf("failed restoring the worker state: %w", err)
}

Expand All @@ -115,18 +123,18 @@ func (a *actuator) Restore(ctx context.Context, log logr.Logger, worker *extensi
}

func (a *actuator) deleteNoLongerNeededMachines(ctx context.Context, log logr.Logger, namespace string) error {
_, shootClient, err := util.NewClientForShoot(ctx, a.workerDelegate.Client(), namespace, client.Options{}, extensionsconfig.RESTOptions{})
_, shootClient, err := util.NewClientForShoot(ctx, a.workerDelegate.client, namespace, client.Options{}, extensionsconfig.RESTOptions{})
if err != nil {
return fmt.Errorf("failed creating client for shoot cluster: %w", err)
}

machineList := &machinev1alpha1.MachineList{}
if err := a.workerDelegate.Client().List(ctx, machineList, client.InNamespace(namespace)); err != nil {
if err := a.workerDelegate.client.List(ctx, machineList, client.InNamespace(namespace)); err != nil {
return fmt.Errorf("failed listing machines: %w", err)
}

podList := &corev1.PodList{}
if err := a.workerDelegate.Client().List(ctx, podList, client.InNamespace(namespace), client.MatchingLabels{"app": "machine"}); err != nil {
if err := a.workerDelegate.client.List(ctx, podList, client.InNamespace(namespace), client.MatchingLabels{"app": "machine"}); err != nil {
return fmt.Errorf("failed listing pods: %w", err)
}

Expand All @@ -147,7 +155,7 @@ func (a *actuator) deleteNoLongerNeededMachines(ctx context.Context, log logr.Lo
return fmt.Errorf("failed deleting node %q for machine %q: %w", nodeName, machine.Name, err)
}

if err := a.workerDelegate.Client().Delete(ctx, machine.DeepCopy()); err != nil {
if err := a.workerDelegate.client.Delete(ctx, machine.DeepCopy()); err != nil {
return fmt.Errorf("failed deleting machine %q: %w", machine.Name, err)
}
}
Expand All @@ -156,7 +164,7 @@ func (a *actuator) deleteNoLongerNeededMachines(ctx context.Context, log logr.Lo
}

func (d *delegateFactory) WorkerDelegate(_ context.Context, worker *extensionsv1alpha1.Worker, cluster *extensionscontroller.Cluster) (genericactuator.WorkerDelegate, error) {
clientset, err := kubernetes.NewForConfig(d.RESTConfig())
clientset, err := kubernetes.NewForConfig(d.restConfig)
if err != nil {
return nil, err
}
Expand All @@ -166,13 +174,15 @@ func (d *delegateFactory) WorkerDelegate(_ context.Context, worker *extensionsv1
return nil, err
}

seedChartApplier, err := kubernetesclient.NewChartApplierForConfig(d.RESTConfig())
seedChartApplier, err := kubernetesclient.NewChartApplierForConfig(d.restConfig)
if err != nil {
return nil, err
}

return NewWorkerDelegate(
d.ClientContext,
d.client,
d.decoder,
d.scheme,
seedChartApplier,
serverVersion.GitVersion,
worker,
Expand All @@ -181,7 +191,10 @@ func (d *delegateFactory) WorkerDelegate(_ context.Context, worker *extensionsv1
}

type workerDelegate struct {
common.ClientContext
client client.Client
decoder runtime.Decoder
scheme *runtime.Scheme

seedChartApplier kubernetesclient.ChartApplier
serverVersion string
cloudProfileConfig *api.CloudProfileConfig
Expand All @@ -195,7 +208,9 @@ type workerDelegate struct {

// NewWorkerDelegate creates a new context for a worker reconciliation.
func NewWorkerDelegate(
clientContext common.ClientContext,
client client.Client,
decoder runtime.Decoder,
scheme *runtime.Scheme,
seedChartApplier kubernetesclient.ChartApplier,
serverVersion string,
worker *extensionsv1alpha1.Worker,
Expand All @@ -210,7 +225,9 @@ func NewWorkerDelegate(
}

return &workerDelegate{
ClientContext: clientContext,
scheme: scheme,
client: client,
decoder: decoder,
seedChartApplier: seedChartApplier,
serverVersion: serverVersion,
cloudProfileConfig: config,
Expand Down
6 changes: 3 additions & 3 deletions pkg/provider-local/controller/worker/helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func (w *workerDelegate) decodeWorkerProviderStatus() (*api.WorkerStatus, error)
return workerStatus, nil
}

if _, _, err := w.Decoder().Decode(w.worker.Status.ProviderStatus.Raw, nil, workerStatus); err != nil {
if _, _, err := w.decoder.Decode(w.worker.Status.ProviderStatus.Raw, nil, workerStatus); err != nil {
return nil, fmt.Errorf("could not decode WorkerStatus '%s': %w", kubernetesutils.ObjectName(w.worker), err)
}

Expand All @@ -49,11 +49,11 @@ func (w *workerDelegate) updateWorkerProviderStatus(ctx context.Context, workerS
},
}

if err := w.Scheme().Convert(workerStatus, workerStatusV1alpha1, nil); err != nil {
if err := w.scheme.Convert(workerStatus, workerStatusV1alpha1, nil); err != nil {
return err
}

patch := client.MergeFrom(w.worker.DeepCopy())
w.worker.Status.ProviderStatus = &runtime.RawExtension{Object: workerStatusV1alpha1}
return w.Client().Status().Patch(ctx, w.worker, patch)
return w.client.Status().Patch(ctx, w.worker, patch)
}