Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: external cluster reference #108

Merged
merged 1 commit into from
Jun 13, 2024

Conversation

prometherion
Copy link
Member

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 deployed
  • ExternalClusterReferenceCrossNamespace, allows referencing Secrets in different Namespaces rather than the KamajiControlPlane's one

The 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.

Signed-off-by: Dario Tranchitella <[email protected]>
@prometherion prometherion added this to the v0.10.0 milestone Jun 13, 2024
@prometherion prometherion added the enhancement New feature or request label Jun 13, 2024
@prometherion prometherion merged commit 8d0b73d into clastix:master Jun 13, 2024
3 checks passed
@prometherion prometherion deleted the discussions/105 branch June 13, 2024 07:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant