Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Related #105.
This feature has 2 separate feature flags marked as
ALPHA
:ExternalClusterReference
, allows to reference Secrets in the same Namespace where the KamajiControlPlane has been deployedExternalClusterReferenceCrossNamespace
, allows referencing Secrets in different Namespaces rather than the KamajiControlPlane's oneThe said boundaries are subject to the threat modelling of the cluster since Kamaji doesn't provide a policy engine.
The said flags can be enabled as usual feature flags, such as
--feature-gates ExternalClusterReference=true
or--feature-gates ExternalClusterReferenceCrossNamespace=true
.When the deployment is offloaded to a third cluster, a separate manager is created to take advantage of controller-runtime Manager caching capabilities, reused by other KamajiControlPlane instances referencing the same pair of Secret/key.
To preserve the reactivity expected from having a local TenantControlPlane instance, the same trigger mechanism experienced with Kamaji addons is in place: when changes are occurring to the remote TenantControlPlane, a reconciliation in the Control Plane is triggered too, without the need of having controllers
RequeAfter
and ensuring the possible reactivity affordable.Remote TenantControlPlane instances are named with
kcp-${kamajiControlPlane.metadata.uid}
, and a finalizer will ensure the deletion of dangling Tenant Control Planes upon the Cluster API objects deletion.