Skip to main content
Version: 1.3.0

Topology Configuration Parameters

In this topic, you will find a description of the parameters required to create the topology YAML file for installing KubeSlice.

Cluster Configuration Parameters

The following table describes the cluster configuration parameters used to create the topology YAML.

ParameterParameter TypeDescriptionRequired
profileStringThe KubeSlice profile to create demo clusters. The supported values are minimal-demo and full-demo.Mandatory
kube_config_pathStringThe absolute path to the kubeconfig file to use topology setup. It is used in the topology YAML file.Optional
cluster_typeStringThe type of cluster on which KubeSlice is deployed. The acceptable values are cloud, kind, and data-center.Optional
controllerObjectThe KubeSlice Controller cluster details.Mandatory
workerObjectThe KubeSlice Worker clusters details.Mandatory

Controller Cluster Configuration Parameters

The following table describes the controller cluster configuration parameters used to create the topology YAML.

ParameterParameter TypeDescriptionRequired
nameStringThe user-defined name of the controller cluster. The maximum allowed number of characters is 30. Provide the name as defined in RFC 1123. To know more, see Kubernetes Object Names and IDs.Mandatory
context_nameStringThe name of the context to use from the kubeconfig file; It is used in the topology YAML file.Optional
kube_config_pathStringThe absolute path to the kubeconfig file to install controller cluster. This takes precedence over the kubeconfig path defined under cluster configuration.Optional
control_plane_addressAlphaNumericThe address of the control plane kube-apiserver. The kubeslice-cli determines the address from kubeconfig. Override this option if the address in the kubeconfig is not reachable by other clusters in the topology.Mandatory
node_ipNumericThe IP address of one of the node in the cluster. The kubeslice-cli determines the address from this command:kubectl get nodes. Override this option to an address which is discoverable by other clusters in the topology.Mandatory

Worker Cluster Configuration Parameters

The following table describes the worker cluster configuration parameters.

ParameterParameter TypeDescriptionRequired
nameStringThe user-defined name of the worker cluster. The maximum allowed number of characters is 30. Provide the name as defined in RFC 1123. To know more, see Kubernetes Object Names and IDs.Mandatory
context_nameStringThe name of the context to use from kubeconfig file; It is used in the topology YAML only. Use the short alias name. For example, you can use worker-cluster or api-cluster as the cluster contexts.Optional
kube_config_pathStringThe absolute path to the kubeconfig file to install a worker cluster. This takes precedence over the kubeconfig path defined under cluster configuration.Optional
control_plane_addressAlphaNumericThe address of the control plane kube-apiserver. The kubeslice-cli determines the address from kubeconfig. Override this option if the address in the kubeconfig is not reachable by other clusters in the topology.Mandatory
node_ipNumericThe IP address of one of the node in the cluster. The kubeslice-cli determines the address from this command:kubectl get nodes. Override this option to an address which is discoverable by other clusters in the topology.Mandatory

KubeSlice Configuration Parameters

The following table describes the KubeSlice configuration parameters.

ParameterParameter TypeDescriptionRequired
project_nameStringthe user-defined name of the Kubeslice project. The maximum allowed number of characters is 30. Provide the name as defined in RFC 1123. To know more, see Kubernetes Object Names and IDs.Mandatory
project_usersStringThis contains the list of KubeSlice project users to be created. The users will have read/write privileges. By default, admin user is created.Optional

Helm Chart Configuration Parameters

The following table describes the helm chart configuration parameters.

ParameterParameter TypeDescriptionRequired
repo_aliasStringThe alias of the helm repo for KubeSlice charts.Optional
repo_urlStringThe URL of the helm charts for KubeSlice.Mandatory
cert_manager_chartObjectThe cert-manager chart details.Mandatory
controller_chartObjectThe Kubeslice Controller chart details.Mandatory
worker_chartObjectThe KubeSlice Worker chart details.Mandatory
ui_chartObjectThe KubeSlice Manager chart details. This object is only required for enterprise charts.Optional
prometheus_chartObjectThe Prometheus chart details. This object is only required for enterprise charts.Optional
helm_usernameAlphaNumericThe helm username if the repo is private.Optional
helm_passwordAlphaNumericThe helm password if the repo is private.Optional
image_pull_secretObjectThe image pull secrets to pull the Kubernetes dashboard image. This object is only required for enterprise charts.Mandatory

Certificate Manager Chart Configuration Parameters

The following table describes the certificate manager chart configuration parameters used to create topology YAML.

ParameterParameter TypeDescriptionRequired
chart_nameStringThe name of the cert-manager chart.Mandatory
versionNumericThe version of the cert-manager chart. Leave this value blank for the latest version.Optional

Controller Chart Configuration Parameters

The following table describes the controller chart configuration parameters used to create topology YAML.

ParameterParameter TypeDescriptionRequired
chart_nameStringThe name of the controller chart.Mandatory
versionNumericThe version of the chart. Leave this value blank for the latest version.Optional
valuesStringThe additional value that can be passed as --set arguments for helm install.Optional

Worker Chart Configuration Parameters

The following table describes the worker chart configuration parameters used to create topology YAML.

ParameterParameter TypeDescriptionRequired
chart_nameStringThe name of the worker chart.Mandatory
versionNumericThe version of the chart. Leave this value blank for the latest version.Optional
valuesStringThe additional value that can be passed as --set arguments for helm install.Optional

UI Chart Configuration Parameters

The following table describes the UI chart configuration parameters used to create topology YAML. These parameters are required for the enterprise-demo option only.

ParameterParameter TypeDescriptionRequired
chart_nameStringThe name of the UI or enterprise chart.Mandatory
versionNumericThe version of the chart. Leave it blank for the latest version.Optional
valuesStringThe additional value that can be passed as --set arguments for helm install.Optional

Prometheus Chart Configuration parameters

The following table describes the Prometheus chart configuration parameters used to create topology YAML. These parameters are required for the enterprise-demo option only.

ParameterParameter TypeDescriptionRequired
chart_nameStringThe name of the Prometheus chart.Mandatory
versionNumericThe version of the chart. Leave it blank for the latest version.Optional
valuesStringThe additional value that can be passed as --set arguments for helm install.Optional

Image Pull Secret Configuration Parameters

The following table describes the image pull secret configuration parameters used to create topology YAML. These parameters are required for the enterprise-demo option only.

ParameterParameter TypeDescriptionRequired
registryStringThe endpoint of the OCI registry to use.Mandatory
usernameAlphaNumericThe username to authenticate against the OCI registry.Mandatory
passwordAlphaNumericThe password to authenticate against the OCI registry.Mandatory
emailAlphaNumericThe email to authenticate against the OCI registry.Mandatory
note

The 'kube_config_path' parameter in the topology configuration requires the absolute path to the kubeconfig file. The 'kube_config_path' parameter must be set at the top-level, that is under cluster_configuration,' or under the controller and workers configuration.

Complete Topology Template

The following template can be used to create a topology YAML file for installing KubeSlice. This is a complete list of all the values that can be passed in a topology file.

configuration:
cluster_configuration:
profile: #{the KubeSlice Profile for the demo. Possible values [full-demo, minimal-demo]}
kube_config_path: #{specify the kube config file to use for topology setup; for topology only}
cluster_type: #{optional: specify the type of cluster. Valid values are kind, cloud, data-center}
controller:
name: #{the user defined name of the controller cluster}
context_name: #{the name of the context to use from kubeconfig file; for topology only}
kube_config_path:#{the path to kube config file to use for controller installation; for topology only.}
#{This takes precedence over configuration.cluster_configuration.kube_config_path}
control_plane_address:#{the address of the control plane kube-apiserver. kubeslice-cli determines the address from kubeconfig}
#{Override this flag if the address in kubeconfig is not reachable by other clusters in topology}
node_ip:#{the IP address of one of the node in this cluster. kubeslice-cli determines this address from kubectl get nodes}
#{Override this flag to an address which is discoverable by other clusters in the topology}
workers: #{specify the list of worker clusters}
- name: #{the user defined name of the worker cluster}
context_name: #{the name of the context to use from the kubeconfig file; for topology only}
kube_config_path:#{the path to kube config file to use for worker installation; for topology only.}
#{This takes precedence over configuration.cluster_configuration.kube_config_path}
control_plane_address:#{the address of the control plane kube-apiserver. kubeslice-cli determines the address from kubeconfig}
#{Override this flag if the address in kubeconfig is not reachable by other clusters in topology}
node_ip:#{the IP address of one of the node in this cluster. kubeslice-cli determines this address from kubectl get nodes}
#{Override this flag to an address which is discoverable by other clusters in the topology}
- name: #{the user defined name of the worker cluster}
context_name: #{the name of the context to use from the kubeconfig file; for topology only}
kube_config_path:#{the path to kube config file to use for worker installation; for topology only.}
#{This takes precedence over configuration.cluster_configuration.kube_config_path}
control_plane_address:#{the address of the control plane kube-apiserver. kubeslice-cli determines the address from kubeconfig}
#{Override this flag if the address in kubeconfig is not reachable by other clusters in topology}
node_ip:#{the IP address of one of the node in this cluster. kubeslice-cli determines this address from kubectl get nodes}
#{Override this flag to an address which is discoverable by other clusters in the topology}
kubeslice_configuration:
project_name: #{the name of the KubeSlice Project}
project_users: #{optional: specify KubeSlice Project users with Read-Write access. Default is admin}
helm_chart_configuration:
repo_alias: #{The alias of the helm repo for KubeSlice Charts}
repo_url: #{The URL of the Helm Charts for KubeSlice}
cert_manager_chart:
chart_name: #{The name of the Cert Manager Chart}
version: #{The version of the chart to use. Leave blank for latest version}
controller_chart:
chart_name: #{The name of the Controller Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)
worker_chart:
chart_name: #{The name of the Worker Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)

# The ui_chart, prometheus_chart, and image_pull_secret parameters are required for the enterprise-demo option (enterprise-chart) only.
ui_chart:
chart_name: #{The name of the UI/Enterprise Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)
prometheus_chart:
chart_name: #{The name of the Prometheus Chart}
version: #{The version of the chart to use. Leave blank for latest version}
values: #(Values to be passed as --set arguments to helm install)
helm_username: #{Helm Username if the repo is private}
helm_password: #{Helm Password if the repo is private}
image_pull_secret: #{The image pull secrets. Optional for OpenSource, required for enterprise}
registry: #{The endpoint of the OCI registry to use. Default is `https://index.docker.io/v1/`}
username: #{The username to authenticate against the OCI registry}
password: #{The password to authenticate against the OCI registry}
email: #{The email to authenticate against the OCI registry}