Manage Projects
During installation a default project workspace called avesha
is created. A single project namespace can be
used to manage one or more clusters across one or more users/teams. In a project, one or more slice workspaces
can be created. A user can be associated with one or more slice workspaces. Each slice workspace provides a workspace for
a user or a team. Additional projects can be created to provide multi-tenancy across organizations or
large departments, where a pool of clusters are managed by the different departments.
A project may represent an individual customer or an organization or a department within an organization. Each project would have a dedicated auto-generated namespace, which will ensure that the resources of one project do not clash with the resources of another project.
For example, a slice workspace with the same name can exist across multiple projects but with different configurations. Changes to the slice workspace in one project will not affect the slice workspace in another project.
Create Project YAML
Create a project namespace by creating a <project_name>.yaml
file using the following template:
apiVersion: controller.kubeslice.io/v1alpha1
kind: Project
metadata:
name: <project name>
namespace: kubeslice-controller
spec:
serviceAccount:
readOnly:
- <readonly user1>
- <readonly user2>
- <readonly user3>
readWrite:
- <readwrite user1>
- <readwrite user2>
- <readwrite user3>
Apply Project YAML
Use the <project_name>.yaml
file that you have created and apply it to create the project.
Apply the YAML file:
kubectl apply -f <full path of the project name>.yaml -n kubeslice-controller
Project Validation
After applying the YAML file on the project namespace, you can validate if the project and service accounts are created successfully.
Validate the Project
Use the following command on the kubeslice-controller
namespace to get
the list of the project:
kubectl get project -n kubeslice-controller
Expected Output
NAME AGE
avesha 30s
Validate the Service Accounts
To validate the account creation, check the service accounts that belong to the project namespace using the following command:
kubectl get sa -n kubeslice-<project name>
Example:
kubectl get sa -n kubeslice-avesha
Example Output
NAME SECRETS AGE
default 1 30s
kubeslice-rbac-ro-user1 1 30s
kubeslice-rbac-rw-user2 1 30s