Adding Clusters to JovianX
Last updated
Last updated
JovianX supports management of multiple Kubernentes clusters, allowing to run and manage workloads on multiple cloud providers in multiple regions simultaneously.
Kubernetes uses a YAML file called kubeconfig
to store cluster authentication information. JovianX uses kubeconfig
files to access the Kubernetes clusters. The kubeconfig
file contains a list of contexts to which JovianX can refer when running Kubernetes operations.
Create a new kubeconfig
file, which will be used for controlling the Kubernetes cluster.
The kubecofnig
files should include configuration for context
, which should define a cluster
and auser
. User is a Kubernetes service account that has the cluster-admin role.
Read more about Kubeconfig in the official Kubernetes documentation.
You can generate an administrative Kubeconfig file using the Generate-Kubeconfig script https://github.com/JovianX/Generate-Kubeconfig.
$ ./kubeconfig-create.sh
Generate administrative Kubeconfig file for your cluster
This script generates a Kubeconfig file that allows full administrative access to your cluster Please note that this creates a Kubernetes service account 'jovianx-admin' with
CLUSTER-ADMIN
role in the 'jovianx-system' namespace.
Proceed?[Y/n]
...
JovianX uses Kubeconfig files to interact with a Kubernetes cluster. To upload a Kubeconfig file:
navigate to Settings
> General
> Application
Open Kubernetes configuratio
Click on Select Kubeconfig file
Once you upload a Kubeconfig file, all cluster details are visible in the main dashboard.
Note: The Kubeconfig file should specify a service account with cluster-admin role, and should include an authentication token, as show in example above.
JovianX allows uploading multiple Kubeconfig files, and supports one context per file.
JovianX allows defining what context to use for each component, thus, to define where to deploy component's Helm Chart.
The definition can be set in the components
section, making it a static definition. Or by setting the context by settings_descriptors
, which allows the user to provide input(option selection) that results in setting context for a component.
You can add context in the component
directly, or set it by settings_descriptors
.
component
:To set the context in the components section, making it a static setting, add the kube_context
directive:
settings_descriptors
:To set context by a user input for a setting descriptor, add the kube_context
directive in the components
section:
kube_context
is a supported directive for settings_descriptors of the following descriptor types: radio, select and checkbox