-
Notifications
You must be signed in to change notification settings - Fork 105
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
[Feature] New Authentication Module #2382
Labels
kind/feature
New feature or request
Comments
4 tasks
Hi @tiwatsuka! Yes, this, in combination with a custom offloading patch for each virtual node, could solve this issue |
Thank you @aleoli. That sounds great! Could I ask you when is the feature released? |
It should be released in the next weeks as a release candidate for testing and a release at the end of July |
Any update on the expected timeline here? |
This is currently available in liqo v1.0.0-rc.2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Authentication Module
This feature proposes a new authentication module, replacing the current one, in order to simplify its operations (e.g., by limiting cross-cluster interactions, such as request/offers) and bringing in more modularity (e.g., declarative operations).
It is based on the concept of
Identity
andTenant
resources, which are used to authenticate and authorize the communication between two clusters: the provider (the cluster that provides resources) and the consumer (the cluster that consumes resources).Design Goals
New Resources
Identity
The Identity resource is the owner of a Kubeconfig secret, that can be used both by Liqo controllers and by the user to access the provider cluster.
They can be of two kinds: Control Plane or Resource; with different permissions and purposes.
Only one Identity resource of kind Control Plane can be created for each provider cluster.
Multiple Identity resources of kind Resource can be created for each provider cluster.
Spec
Status
ResourceSlice
The ResourceSlice resource is used to request resources from a provider cluster and map how much of them are provided.
There could be multiple ResourceSlice resources for each provider cluster, each one with a different amount of resources requested.
For each ResourceSlice resource, a new Identity resource is created, and the Kubeconfig secret ref is stored in the Status of the ResourceSlice resource.
ResourceSlices can have different classes, to allow the provider cluster to have different policies for different resources.
By default, the provider Liqo controllers will accept all the ResourceSlice resources allowing the usage of all the requested resources.
Spec
Status
Tenant
The Tenant resource maps the consumer cluster in the provider cluster, and it is the owner of a tenant namespace.
Only one Tenant resource can be created for each consumer cluster.
Spec
Status
Workflow
Control Plane
The Control Plane is the first step of the authentication process, and it is used to authenticate the consumer cluster to the provider cluster and to provide the consumer cluster with a Kubeconfig to manage Liqo control plane resources and to check the health of the provider cluster.
In the schema, dashed arrows represent manual actions where the user (or software acting for him) needs to move data between the two clusters.
In that way, no automatic action is performed between clusters by Liqo components, leading to full declarativity.
Interactions
The schema shows the lowest level interaction required to set up this step by using liqoctl.
Those steps can be wrapped by another liqoctl command, in which the user is the owner of both clusters, and they are reachable at the same time from the same machine.
Resource Acquisition
Resource Acquisition is the second step of the authentication process, and it is used to authenticate the consumer cluster to the provider cluster and to provide the consumer cluster with a Kubeconfig to manage the computing resources requested and scheduled to the provider cluster.
In the schema, red arrows represent resources replicated by the Liqo CRD Replicator; no manual action is required.
Interactions
The schema shows the lowest level interaction required to set up this step by using liqoctl.
The only step is creating the ResoruceSlice resource; then, everything is handled by the CRD replicator.
The creation of the related VirtualNode may be automatized by setting an annotation over the ResourceSlice.
The text was updated successfully, but these errors were encountered: