Skip to main content
Version: 1.15.0

Install KubeTally

This topic describes the steps to install KubeTally on the cluster using the script provided in the repository.

The following is the workflow of the script:

  1. As the first step, the script ensures that all prerequisites are met.

    • In addition, the script requires the following binaries installed and available in your system's PATH:

      • yq (minimum version: 4.44.2)
      • helm (minimum version: 3.15.0)
      • kubectl (minimum version: 1.23.6)
      • jq (minimum version: 1.6.0)
  2. The script validates access to necessary Kubernetes clusters using Kubernetes context.

  3. The script installs or updates the helm charts, which:

    • Installs or upgrades the KubeTally Controller
    • Installs or upgrades the KubeTally user interface
  4. In addition to the KubeTally Controller, the script also

    • Creates the default project
    • Creates defined projects in the controller
    • Registers defined clusters within these projects
    • Manages clusters
  5. The script installs or upgrades worker nodes by applying the necessary configuration.

Clone the Repository

Clone the repository using the following command:

git clone https://github.com/kubeslice-ent/kubetally-installer
note

Ensure the YAML configuration file is correctly formatted and contains all necessary fields. The script will exit with an error if any critical steps fail unless configured to skip on failure. Paths specified in the YAML file must be relative to the base_path unless absolute paths are used.

Modify the Configuration File

  1. Navigate to the cloned repository and locate the input configuration file called kubetally-installer-config.yaml.

  2. Update the following mandatory parameters:

    a. Insert the image pull secrets received though email as part of the registration process.

    global_image_pull_secret:
    repository: "https://index.docker.io/v1/"
    username: "" # Global Docker registry username (MANDATORY)
    password: "" # Global Docker registry password (MANDATORY)

    b. Set the Kubernetes global kubeconfig and kubecontext parameters.

     global_kubeconfig: ""  # Relative path to global kubeconfig file from base_path default is script directory (MANDATORY)
    global_kubecontext: "" # Global kubecontext (MANDATORY)

    c. Postgres configuration

    • In-cluster PostgreSQL Service

      Set skip_installation to false for PostgreSQL in the additional_apps section of the configuration, and the script automatically fetches the PostgreSQL configuration.

    • Managed PostgreSQL Service

      1. Set skip_installation to true when you are using managed PostgreSQL service.

      2. Set the following PostgreSQL values using the following template:

        global:
        kubeTally:
        enabled: true
        postgresSecretName: kubetally-db-credentials
        postgresAddr:
        postgresPort:
        postgresUser:
        postgresPassword:
        postgresDB:

Execute the Installation Script

note

The installation script creates a default project workspace and registers worker clusters.

Execute the script using the following command:

./kubetally-installer.sh --input-yaml kubetally-installer-config.yaml

Troubleshooting

  • For missing binaries, ensure all required binaries are installed and accessible in your system's PATH.
  • For cluster access issues, verify that kubeconfig files configuration so the script can access the clusters specified in the YAML configuration.
  • For timeout issues, if a component fails to install within the specified timeout, increase the verify_install_timeout in the YAML file.