-
Notifications
You must be signed in to change notification settings - Fork 122
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
Support for automatic import of multi-cluster platforms like Cluster API, Karmada, Clusternet etc. #185
Comments
Sorry ,i didn't understand its meaning. Can you explain it more clearly?
I guess you're talking about the |
@chaunceyjiang Yes, the programme is still being refined, so the descriptions will be vague. Example, clusterpedia will automatically trigger the creation/update/deletion of |
Hi, I have a little question. Is this just a connection to the |
@chaunceyjiang Synchronize resources within these clusters that are managed by a multi-cloud platform. |
Since |
The authentication information obtained from the source cluster may have very high permissions, while the only permissions required by clusterpedia are actually read-only. We can add a |
#259 has completed the basic features, there are still some minor optimizations to be done.
Unimplemented features:
|
I like this feature, but I have a question. Because of some permissions and security problems, I want some clusters managed by karmada not to be automatically imported into clusterpedia. How can I set |
You can avoid the creation of these clusters by creationCondition, and because of the flexibility of the template, you can tell by name or labels, annotations or other fields. |
What would you like to be added?
clusterpedia was originally designed to provide resource querying for multiple clusters on top of a multi-cluster management platform.
The most common multicluster platforms today, such as cluster api, karmada, clusternet, etc., clusterpedia needs to be able to automatically discover these clusters and make them more useful.
We need a conversion policy to automatically
create/update/delete
the PediaClusters based on changes to cluster api and karmada‘s Cluster resource.Of course we don't just support these open source products, we also need to be able to support user-developed multi-cluster platforms very well
Why is this needed?
Enables users to better connect their existing platforms to clusterpedia.
Design
The core of the implementation of automatic discovery of clusters managed by a multi-cloud platform is the conversion of the CR representing the managed cluster to
PediaCluster
We need to use two new custom resources:
ClusterImportPolicy need to define the following things:
PediaCluster
PediaCluster
PediaCluster
Based on the above requirements, we can show a
ClusterImportPolicy
example:We make extensive use of templates, which allows for more flexible syntax.
The
.spec.nameTemplate
is used to set the name of the convertedPediaCluster
.spec.references
defines the resources involved, and the later items can refer to the previous ones..spec.creationCondition
defines when a PediaCluster can be created. This field is required and will only be created if the value is true (case insensitive) after template processing..spec.deletionCondition
defines when to deletePediaCluster
, the default is to delete PediaCluster after source object is deleted..spec.template
defines the resource templates for creating and updating PediaCluster.spec.updationTemplate
defines the template that will be used to update thePediaCluster
using patch, so that user can choose to update only the information about the cluster autha and authz. This field is optional, if it is not set, the resource will be updated using.spec.template
.When a source object is created does not mean that the
PediaCluster
needs to be created.For multi-cloud platforms, it may not be simple to successfully manage a cluster, so you can configure the timing of creating a PediaCluster via
.spec.creationCondition
.A
PediaCluster
object will be deleted simultaneously when the source object is deleted, or the user can use.spec.deletedCondition
to decide when to delete it earlier.The
ClusterImportPolicy
defines how the resource type represented by.spec.source
is converted to aPediaCluster
object, and when a source object is created, aPediaClusterLifecycle
object is created simultaneously,PediaClusterLifecycle
maintains the relationship between a source object and aPediaCluster
object, and decides when and how to create aPediaCluster
according to the policy defined inClusterImportPolicy
.The
.spec.source
will specify the specific resource by namespace and name in thePediaClusterLifecycle
.The other fields under spec have the some content and role as
ClusterImportPolicy
The text was updated successfully, but these errors were encountered: