Create Namespace from Templates
Once you have created a namespace template you can then refer to that template when creating a new namespace. All template configurations will be automatically applied to the newly created namespace. Namespaces referring to templates can be created in the UI or via the vCluster 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:
vcluster platform connect 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.
Template Version Strings
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.