Create Namespace
Each namespace that is created in Loft belongs to a project. There are two ways how namespaces can be created inside Loft:
- For regular project users: namespaces can only be created by template that are allowed on project level.
- For project admins: namespaces can be created without template.
Create From Template
Project members can create a new namespace through the UI or CLI:
- UI
- CLI
Go to the Projects view using the menu on the left
Click on Namespaces and the button
In the popup select the namespace template and click the button
Optional: Select a cluster where to create the namespace in. If no cluster is specified, the platform will automatically select one for you.
Specify a name of the namespace at the top and optionally configure the template parameters and namespace access.
Click on the button
Retrieve a kube-context for this namespace using Loft CLI:
loft use namespace [namespace-name] --project my-project
The Kubernetes namespace in the underlying cluster this namespace points to usually has a different name than the namespace inside the project to avoid conflicts, you can adjust the space name pattern within a project.
To create a namespace using vcluster CLI, run:
vcluster platform create namespace [namespace-name] --project my-project
If you omit specifying a template, Loft will automatically select one for you (if there is a default template in the project specified) or prompt you to select a template.
Running loft create namespace
will automatically add a kube-context to your kube-config file, so you can immediately run kubectl
commands right after creating a namespace.
Regardless of how you create a namespace from a template, either by the UI or the CLI, Loft
allows you to provide a template version string. If you do not provide this string, the latest
version will be automatically selected for you. If you do provide the string though, you can
do something very neat -- you can set any of the MAJOR, MINOR, PATCH version components to an
X
wildcard character. This allows the namespace to be automatically updated to a more recent
template version that matches your provided template string.
For example, given a template with a version of 1.0.0, and a namespace created from this template with a version string "1.X.X". Adding a new template version "1.1.0", will cause this namespace to be automatically updated. Whereas adding a new version "2.0.0", will not cause the namespace to be upgraded.
This is a very handy way to keep namespaces up to date with the latest templates without having to manually upgrade them!
Note that you can even set the version to "X.X.X" to always have your namespace updated to the latest template version!
Create Without Template
Only Project admins can create a virtual cluster without a template:
Go to the Projects view using the menu on the left
Click on Namespaces and the button
In the popup make sure the namespace template field is empty and click the button
Optional: Select a cluster where to create the namespace in. If no cluster is specified, the platform will automatically select one for you.
Specify a name of the namespace at the top and optionally configure the namespace you want to create.
Click on the button
Retrieve a kube-context for this namespace using vcluster CLI:
loft use space [namespace-name] --project my-project