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 <negz@rk0n.org>
This commit is contained in:
Nic Cope 2021-03-11 08:02:04 +00:00
parent 3cd26cccdc
commit 824eb6919d
3 changed files with 5 additions and 5 deletions

View File

@ -139,6 +139,7 @@ type ResourceSpec struct {
// ProviderConfigReference specifies how the provider that will be used to // ProviderConfigReference specifies how the provider that will be used to
// create, observe, update, and delete this managed resource should be // create, observe, update, and delete this managed resource should be
// configured. // configured.
// +kubebuilder:default={"name": "default"}
ProviderConfigReference *Reference `json:"providerConfigRef,omitempty"` ProviderConfigReference *Reference `json:"providerConfigRef,omitempty"`
// ProviderReference specifies the provider that will be used to create, // ProviderReference specifies the provider that will be used to create,

View File

@ -58,9 +58,11 @@ func (a *NameAsExternalName) Initialize(ctx context.Context, mg resource.Managed
// DefaultProviderConfig fills the ProviderConfigRef with `default` if it's left // DefaultProviderConfig fills the ProviderConfigRef with `default` if it's left
// empty. // empty.
// Deprecated: Use OpenAPI schema defaulting instead.
type DefaultProviderConfig struct{ client client.Client } type DefaultProviderConfig struct{ client client.Client }
// NewDefaultProviderConfig returns a new DefaultProviderConfig. // NewDefaultProviderConfig returns a new DefaultProviderConfig.
// Deprecated: Use OpenAPI schema defaulting instead.
func NewDefaultProviderConfig(c client.Client) *DefaultProviderConfig { func NewDefaultProviderConfig(c client.Client) *DefaultProviderConfig {
return &DefaultProviderConfig{client: c} return &DefaultProviderConfig{client: c}
} }

View File

@ -367,11 +367,8 @@ func defaultMRManaged(m manager.Manager) mrManaged {
return mrManaged{ return mrManaged{
ConnectionPublisher: NewAPISecretPublisher(m.GetClient(), m.GetScheme()), ConnectionPublisher: NewAPISecretPublisher(m.GetClient(), m.GetScheme()),
Finalizer: resource.NewAPIFinalizer(m.GetClient(), managedFinalizerName), Finalizer: resource.NewAPIFinalizer(m.GetClient(), managedFinalizerName),
Initializer: InitializerChain{ Initializer: NewNameAsExternalName(m.GetClient()),
NewDefaultProviderConfig(m.GetClient()), ReferenceResolver: NewAPISimpleReferenceResolver(m.GetClient()),
NewNameAsExternalName(m.GetClient()),
},
ReferenceResolver: NewAPISimpleReferenceResolver(m.GetClient()),
} }
} }