From 824eb6919de2aa2a70a78233a6715bf01decaab2 Mon Sep 17 00:00:00 2001 From: Nic Cope Date: Thu, 11 Mar 2021 08:02:04 +0000 Subject: [PATCH] Use OpenAPI to set the default ProviderConfig This allows us to avoid an extra update call to the API server when new managed resources are created. Signed-off-by: Nic Cope --- apis/common/v1/resource.go | 1 + pkg/reconciler/managed/api.go | 2 ++ pkg/reconciler/managed/reconciler.go | 7 ++----- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apis/common/v1/resource.go b/apis/common/v1/resource.go index 7a4b31c..d7dc688 100644 --- a/apis/common/v1/resource.go +++ b/apis/common/v1/resource.go @@ -139,6 +139,7 @@ type ResourceSpec struct { // ProviderConfigReference specifies how the provider that will be used to // create, observe, update, and delete this managed resource should be // configured. + // +kubebuilder:default={"name": "default"} ProviderConfigReference *Reference `json:"providerConfigRef,omitempty"` // ProviderReference specifies the provider that will be used to create, diff --git a/pkg/reconciler/managed/api.go b/pkg/reconciler/managed/api.go index 6aff269..a72f8c9 100644 --- a/pkg/reconciler/managed/api.go +++ b/pkg/reconciler/managed/api.go @@ -58,9 +58,11 @@ func (a *NameAsExternalName) Initialize(ctx context.Context, mg resource.Managed // DefaultProviderConfig fills the ProviderConfigRef with `default` if it's left // empty. +// Deprecated: Use OpenAPI schema defaulting instead. type DefaultProviderConfig struct{ client client.Client } // NewDefaultProviderConfig returns a new DefaultProviderConfig. +// Deprecated: Use OpenAPI schema defaulting instead. func NewDefaultProviderConfig(c client.Client) *DefaultProviderConfig { return &DefaultProviderConfig{client: c} } diff --git a/pkg/reconciler/managed/reconciler.go b/pkg/reconciler/managed/reconciler.go index 3e155ca..6918f56 100644 --- a/pkg/reconciler/managed/reconciler.go +++ b/pkg/reconciler/managed/reconciler.go @@ -367,11 +367,8 @@ func defaultMRManaged(m manager.Manager) mrManaged { return mrManaged{ ConnectionPublisher: NewAPISecretPublisher(m.GetClient(), m.GetScheme()), Finalizer: resource.NewAPIFinalizer(m.GetClient(), managedFinalizerName), - Initializer: InitializerChain{ - NewDefaultProviderConfig(m.GetClient()), - NewNameAsExternalName(m.GetClient()), - }, - ReferenceResolver: NewAPISimpleReferenceResolver(m.GetClient()), + Initializer: NewNameAsExternalName(m.GetClient()), + ReferenceResolver: NewAPISimpleReferenceResolver(m.GetClient()), } }