crossplane-runtime/pkg/apis/aws
Nic Cope 5c9f5e68dc Remove Provider validation checks, and thus Provider controllers
Most resource controllers check that their Provider is 'valid' before attempting
to connect to it. This IsValid() check simply reflects whether the Provider's
Ready condition is currently true. The Ready condition is set by the Provider
controllers, which make a naive request to the cloud provider to validate that
their provider secrets are functional and mark the Provider CR ready if they
are.

This approach is flawed in two ways.

Firstly it relies on the recorded rather than current actual state of the world
to determine whether the provider is ready. Recently we've preferred that
controllers make decisions based on real rather that recorded observations. Put
otherwise, a resource controller (e.g. the CloudMemorystore controller should
validate that its credentials work, not check whether the Provider controller
indicated the credentials worked some time in the recent past.

Secondly, there's no way the Provider controller can ensure its credentials are
valid for all the potential controllers that depend on it. Most providers test
their validity by using their credentials to list buckets, or some similarly
common managed resource. Unfortunately credentials being valid to list buckets
do not mean they're valid to CRUD CloudMemorystore instances.

In short, it's preferable to determine whether credentials are valid for a
particular task (i.e. CRUD-ing CloudMemorystore instances) by actually trying to
use them to perform that task.

Given this, I've removed the Provider controllers and their status objects in
this commit.

Signed-off-by: Nic Cope <negz@rk0n.org>
2019-05-31 17:58:21 -07:00
..
cache Mark the current implementation of ConditionedStatus as deprecated 2019-05-31 16:04:27 -07:00
compute Mark the current implementation of ConditionedStatus as deprecated 2019-05-31 16:04:27 -07:00
database Mark the current implementation of ConditionedStatus as deprecated 2019-05-31 16:04:27 -07:00
storage Mark the current implementation of ConditionedStatus as deprecated 2019-05-31 16:04:27 -07:00
v1alpha1 Remove Provider validation checks, and thus Provider controllers 2019-05-31 17:58:21 -07:00
aws.go Combine mulitple appends into a single call 2019-03-06 14:40:17 -08:00
aws_test.go Add test coverage for apis scaffolding components 2019-04-30 12:41:19 -07:00