Adding Clusters to JovianX
JovianX supports management of multiple Kubernentes clusters, allowing to run and manage workloads on multiple cloud providers in multiple regions simultaneously.

Kubernetes Multi-Cluster Management
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. $ cat kubeconfig-example.yaml
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: <CA-CERT>
server: https://<KUBERNETES-CLUSTER-IP>
name: <CLUSTER-NAME>
contexts:
- context:
cluster: <CLUSTER-NAME>
user: <SERVICE-ACCOUNT>
name: <CONTEXT-NAME>
kind: Config
preferences: {}
users:
- name: <SERVICE-ACCOUNT>
user:
token: <ACCESS-TOKEN>
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:
- 1.navigate to
Settings
>General
>Application
- 2.Open
Kubernetes configuratio
- 3.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
.To set the context in the components section, making it a static setting, add the
kube_context
directive: - name: node-component
version: 1.0.0
provider: helm_chart
helm_chart_name: node-chart
kube_context: <KUBERNETES-CONTEXT-NAME> # <---------------------
...
To set context by a user input for a setting descriptor, add the
kube_context
directive in the components
section: - name: choose_cloud_region
display: 'Choose cloud provider region'
input_type: radio
default: 'us-west-1'
select_options:
- name: 'us-west-1'
display: 'US West (N. California)'
components:
- name: node-component
kube_context: <us-west-1 KUBERNETES-CONTEXT-NAME> # <-----------
...
- name: 'us-east-1'
display: 'US East (N. Virginia) '
components:
- name: node-component
kube_context: <us-east-1 KUBERNETES-CONTEXT-NAME> # <-----------
...
kube_context
is a supported directive for settings_descriptors of the following descriptor types: radio, select and checkboxLast modified 3yr ago