K8s Helm Chart

Kubernetes installation

AimHub uses helm charts for installation on Kubernetes cluster.

Hardware requirements

  • At least two worker nodes with a minimum of 2vCPU and 4GB RAM for application deployment. This is sufficient to set up AimHub and create a small number of Aim projects.

Prerequisites

  • Kubernetes cluster with version v1.23 or v1.24.

  • At least one storageClass with dynamic volume provisioning.

  • A network type load balancer to expose AimHub externally.

Installation

To deploy the AimHub Helm chart, navigate to the chart directory and run the following Helm installation command:

helm install <release-name> -n <application-namespace> -f <values.yaml> .

Where:

  • <release-name> is a unique name to identify the AimHub deployment,

  • <application-namespace> is the Kubernetes namespace where you want to install AimHub,

  • <values.yaml> is the path to the modified values.yaml file.

<aside> ⚠️ values.yaml file should be properly configured prior to running installation command. Please refer to “Parameters Configuration” section for the details

</aside>

Parameters configuration

Required parameters

❗ The following values must be specified in values.yaml file prior to installing Chart:

ingress.class  # Kubernetes ingress class name (nginx for example)
ingress.host  # AimHub deployment domain name

env.AIMHUB_PROJECTS_DOMAIN  # AimHub deployment domain name
env.AIMHUB_ADMIN_USER_NAME  # AimHub organization owner name
env.AIMHUB_ADMIN_USER_EMAIL  # AimHub organization owner e-mail
env.AIMHUB_ORGANIZATION_NAME  # Organization name to be used in AimHub

redis.auth.password  # Redis database password
postgres.auth.password  # Password for the application user
postgres.auth.postgresPassword  # Password for the postgres user

All parameters

Below is the list of configurable parameters in AimHub Chart:

  • domain_name:

    • Domain for accessing the AimHub application.

  • ingress:

    • enabled:

      • The boolean parameter is used to enable or disable ingress resource implementation

      • Default value is true

    • class

      • Parameter to provide k8s ingress_class that should be used in ingress resources

      • If left it blank the default ingress class will be used(If there are any)

    • tls.enabled

      • The boolean parameter is used to enable TLS termination

      • Default value is false

    • tls.secret_name:

      • Parameter used to provide k8s secret name for TLS certificate

  • env

    • AIMHUB_REDIS_URL:

      • Redis connection URL: redis://:<password>@<redis-service-URL>:6379/0

        ⚠️ Please provide value for this parameter in case you decided to use your own Redis setup. By default Aimhub helm chart uses Redis helm chart(from bitnami) as dependency, and configuration parameters are generated automatically. Otherwise please left it blank

    • AIMHUB_SQL_URL:

      • Database connection URL: postgresql://<username>:<password>@<db service endpoint>:5432/<db-name>

        ⚠️ Please provide value for this parameter in case you decided to use your own PostgreSQL setup. By default Aimhub helm chart uses PostgreSQL helm chart(from bitnami) as dependency and configuration parameters are generated automatically. Otherwise please left it blank

    • AIMHUB_PROJECTS_DOMAIN:

      • Domain for accessing AimHub application.

    • AIM_CHART_VERSION:

      • Parameter used to provide exact chart version for single deployment Aim project

  • resources: (Optional)

    • Compute parameters for AimHub components. Defaults are sufficient testing purposes.

  • persistance:

    • Change parameters if needed.

    • Provide K8S storageClass name

  • tolerations: (Optional)

    • Configuration for node taints where the application should be deployed.

  • affinity:(Optional)

  • aim:

    • resources:(optional)

      • Change parameters for compute parameters if needed

    • persistance:

      • Change parameters if needed.

      • Provide K8S storageClass name

    • tolerations(optional):

      • Add configuration, which corresponds to node taints, where the application should be deployed

    • affinity:

  • redis:

    • enabled

      • Default value is true

      • Used to enable/disable Redis helm chart deployment

    • global.storageClass(required):

      • Parameter used to define K8s storageClass for persistence

      • Left is blank if you want to use default storage class in your K8S cluster

    • auth.password(required)

      • Parameter used to define Redis connection password

    • tolerations(optional):

      • Add configuration, which corresponds to node taints, where the application should be deployed

    • affinity:(optional)

  • postgresql

    • enabled

      • Default value is true

      • Used to enable/disable PostgreSQL helm chart deployment

    • global.storageClass**(required)**:

      • Parameter used to define K8s storageClass for persistence

      • Left is blank if you want to use default storage class in your K8S cluster

    • auth.postgresPassword(required)

      • Parameter used to define password for postgres ****user

    • tolerations(optional):

      • Add configuration, which corresponds to node taints, where the application should be deployed

    • affinity:(optional)

    • auth.password(required)

      • Parameter used to define password for application user

Last updated