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
// 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,

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
// 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}
}

View File

@ -367,10 +367,7 @@ 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()),
},
Initializer: NewNameAsExternalName(m.GetClient()),
ReferenceResolver: NewAPISimpleReferenceResolver(m.GetClient()),
}
}