1. Home
  2. Docs
  3. ClusterControl
  4. Installation
  5. Automatic Installation
  6. ClusterControl helm-chart

ClusterControl helm-chart

This helm chart is designed to provide everything you need to get ClusterControl running in a vanila Kubernetes cluster. This includes dependencies like:

  • Ingress-Nginx Controller
  • MySQL Operator
  • VictoriaMetrics Operator

If you do not wish to install any of those, see Helm chart dependencies.

Installation

1. Add a helm chart repository with the following commands:

helm repo add s9s https://severalnines.github.io/helm-charts/
helm repo update

2. It’s recommended to create a namespace for ClusterControl. It’s also required to run in a custom namespace (not default) when using mysql-operator:

kubectl create ns clustercontrol
kubectl config set-context --current --namespace=clustercontrol

3. Install ClusterControl using helm:

helm install clustercontrol s9s/clustercontrol

The installation above will generate an example SSH key for you to use to access your database nodes. However, you can use your own SSH key as described below.

Providing your own SSH keys for ClusterControl to use

ClusterControl provides an example SSH key for you to use, however, you should provide your SSH keys for ClusterControl to use and connect to your target machines. These should already be configured on the target server’s authorized_keys.

1. Create k8s secrets with your SSH keys:

kubectl create secret generic my-ssh-keys --from-file=key1=/path/to/my/.ssh/id_rsa

key1 is the filename of your SSH key in ClusterControl – this will be created under /root/.ssh-keys-user

Note

You can use multiple --from-file – be sure to provide unique key names – key1, key2, key3

2. Install or upgrade ClusterControl by providing cmon.sshKeysSecretName value with our secret name created above:

helm upgrade --install clustercontrol s9s/clustercontrol --set cmon.sshKeysSecretName=my-ssh-keys

Custom configuration via values.yaml

To create your own override file, export it from Helm using the show command:

helm show values s9s/clustercontrol > values.yaml

Look at the generated values.yaml and customize your configuration here. To install or upgrade using your custom values.yaml, include the override file with the -f flag:

helm install clustercontrol s9s/clustercontrol -f values.yaml

Notes

  • CMON API is accessible within the cluster via cmon-master:9501
  • ClusterControl V2 is accessible within the cluster via cmon-master:3000
  • We highly recommend ingress as ClusterControl V2 requires cmon API to be exposed and available externally.

Helm chart dependencies

Oracle MySQL Operator or NGINX ingress controller

If you already have Oracle MySQL Operator or NGINX ingress controller installed, you can set the following flags:

helm install clustercontrol s9s/clustercontrol --debug --set fqdn=clustercontrol.example.com --set installMysqlOperator=false --set ingressController.enabled=false
This helm chart has dependencies that make ClusterControl easier to install. None of these is necessary if you provide your equivalent or you already have it installed:
  • oracle-mysql-operator
    • Oracle MySQL operator is required for running the MySQL database within the Kubernetes cluster.
    • You can disable this by setting: installMysqlOperator: false
  • oracle-mysql-innodbcluster
  • nginx-ingress-controller
    • An ingress controller to access ClusterControl.
    • For more information, please refer to the official Helm chart documentation for the NGINX-Ingress Controller.
    • If you already have an ingress controller installed or wish to use a different one, you can disable this by:
ingressController:
    enabled: false

VictoriaMetrics or other Prometheus-compatible monitoring

If you wish to use your VictoriaMetrics or other Prometheus-compatible monitoring systems, please refer to victoria-metrics-single parameters. These defaults provide a minimal need for ClusterControl metrics and dashboards to work. Feel free to adjust as needed, however, keep in mind the required labels annotations, and service discovery. If you already have your own VictoriaMetrics or Prometheus cluster and don’t want to install this, you can disable it by setting the following inside values.yaml:

prometheusHostname: my-prometheus-server
monitoring:
    enabled: false
Was this article helpful to you? Yes No