3.4. HelmChart Installation

You may want to choose an HelmChart installation if you are using the Kubernetes Container Platform to deploy your applications and you are familiar with HelmCharts.

3.4.1. Prerequisites

Please make sure that you provide the following prerequisites:

  1. a valid licence file is needed (get it at speedgain.com)

  2. a Kubernetes Container Platform accessible via kubectl and helm terminal command

  3. 4 CPU Cores, 16GB RAM and at least 100GB to store data

  4. a modern web-browser

3.4.2. Services

One service can’t be run on its own. It has to be executed in a compose with 5 other services (all available on Docker-Hub and via ITGAIN download portal: itgain.sharefile.eu ). The list of all 6 images:

  1. Timescale - as the repository to store all performance metrics

  2. Speedgain Collector - the core component to pull metrics

  3. Speedgain Service - rest api service

  4. Speedgain Frontend - web-frontend

  5. Speedgain Grafana - delivering all needed dashboards

  6. NginX - as reverse proxy

3.4.3. Helm Chart Installation for both Openshift and native Helm (online and offline)

  1. Add persistent volume claims (optional - will be created if not existing)

    1. Provide a persistent volume claim called "s4dbs-postgres-pv-claim" to persist the collected performance data. The size depends on the databases to be monitored. A good value is 100 GB.

    2. Openshift Example

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: s4dbs-postgres-pv-claim
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 100Gi
    3. AKS Example

      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: s4dbs-postgres-pv-claim
        annotations:
          "helm.sh/resource-policy": "keep"
      spec:
        accessModes:
          - ReadWriteOnce
        storageClassName: "managed-csi"
        resources:
          requests:
            storage: 100G
  2. add and deploy the Speedgain for Databases helm chart repository via a for Openshift or b for native helm or c download chart and deploy manually. During deployment a loadbalancer will be added to open the reverse proxy to ip ranges outside of the cluster.

    1. Openshift add Helm Chart Repo yaml

      1. add Helm Chart repository

        apiVersion: helm.openshift.io/v1beta1
        kind: HelmChartRepository
        metadata:
          name: itgainchartsrepo
        spec:
          connectionConfig:
            url: 'https://itgain.github.io/charts/'
          name: itgainchartsrepo
      2. Deploy S4DBs via Helm Chart Repository in OpenShift Developer Interface and adjust values (readme is provided during deployment)

    2. native helm

      1. native helm add repo command

        helm repo add itgainchartsrepo https://itgain.github.io/charts/
      2. update local helm repository

        helm repo update
      3. deploy via native helm command

        helm install s4dbs itgainchartsrepo/s4dbs
    3. manuall / offline deployment

      1. Download the Speedgain HelmChart file. Copy and extract the file to your file system.

      2. Review the provided Speedgain values configuration file values.yaml

      3. Verify that the docker images can be accessed in your Kubernetes cluster. If you do not have direct access to Docker-Hub, download images from our download portal and transfer to the docker repository used by your Kubernetes Cluster via

        docker load --input s4dbs_vx.x.x_all_images.tar.gz
      4. Install the HelmChart via

        helm install s4dbschart .
    4. Open Web Frontend to change settings and to upload licence file

      1. get the donated ip adress of the loadbalancer

        kubectl describe service --namespace s4dbs-test1 s4dbs-reverse-service
      2. Open URL in Browser http://12.34.56.78/ (change to ip adress from one step before in field "LoadBalancer Ingress")

      3. open the menu in the upper left corner

      4. select configuration and enter admin/admin to login

      5. upload licence file in "maintenance" section

      6. click menu button again

      7. click on account settings and enter current password again (admin)

      8. enter new password for admin login (s4dbs only - grafana has a uniqe different password)

3.4.4. Customization Options

For customization options, please review the Docker Compose installation section.

3.4.5. Speedgain values configuration file values.yaml

# Default values for s4dbs.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

# frontendConfigMode should not be changed unless you are advised to by support team
frontendConfigMode: false

### START * not needed if frontendConfigMode set to false ###
# serverHostname is the public available dns / server name - e.g. route in an openshift
serverHostname: localhost ##enter dns name of route here (will be created later) ##

# servicePort is the public service /rest-api port for the frontend to redirect correctly - change to 8080 (port of reverse proxy) if not using a route or ingress up front s4dbs
servicePort: 80

# serverProtokol depends on your configmap for reverse proxy / nginx
serverProtokol: http

# grafanaPort is the public grafana port for the frontend to redirect correctly - change to 8080/grafana (port of reverse proxy) if not using a route or ingress up front s4dbs
grafanaPort: 80/grafana

### END * not needed if frontendConfigMode set to false ###

# pdb is the overall repository (aka pdb) configuration
pdb:
  pdbDbName: speedgain
  pdbHost: s4dbs-postgres-service
  pdbPort: 5432
  pdbUser: postgres

# s4dbsCollectorDeployment defines collector image and varas
s4dbsCollectorDeployment:
  image: docker.io/itgainis/s4dbs_collector:1.6.0
  spgLogLevel: INFO

# s4dbsPostgresDeployment defines timescale image and varas
s4dbsPostgresDeployment:
  image: docker.io/timescale/timescaledb:2.11.2-pg13
  persistentVolumeClaimName: s4dbs-postgres-pv-claim
  persistentVolumeClaimSize: 100G
  storageClassName: something #change to map you storage provider, like managed-csi on AZURE or thin on OpenShift

# s4dbsServiceDeployment defines timescale image and varas
s4dbsServiceDeployment:
  image: docker.io/itgainis/s4dbs_service:1.6.0
  port: 8080

# s4dbsGrafanaDeployment defines timescale image and varas
s4dbsGrafanaDeployment:
  image: docker.io/itgainis/s4dbs_grafana:1.6.0
  port: 3000
  anonymousLogin: false

# s4dbsFrontendDeployment defines timescale image and varas
s4dbsFrontendDeployment:
  image: docker.io/itgainis/s4dbs_frontend:1.6.0
  port: 8080

# s4dbsReverseDeployment defines timescale image and varas
s4dbsReverseDeployment:
  image: docker.io/nginx:1.23
  port: 8080
  publicPort: 80

3.4.6. Speedgain HelmChart file