Install AGILITY on Kubernetes

Architecture

AGILITY components are divided into three groups:

  • agility-system

  • agility-services

  • agility

AGILITY Operator manages AGILITY components synchronizing with the AGILITY Central site.

image-20240704-195037.png

Prerequisites

Before installing AGILITY, you must have these prerequisites:

  • Kubernetes:

    • Admin Permissions. You must have Kubernetes administrative permissions to perform the installation.

    • Dynamic Volume Provisioning. Dynamic volume provisioning for block storage is recommended. When using a cloud-managed cluster, CSI provisioners are most likely available. For on-premises deployments, a solution like rook-ceph might be an alternative. Otherwise, check Manually provision persistent volumes for manual provisioning.

  • Local CLI applications

    • helm. Make sure you have helm version 3.8 or higher installed.

    • jq. Make sure you have jq version 1.6 or higher installed.

  • B-Yond License. To install AGILITY, you will need the B-Yond license provided by B-Yond customer support.

Please ensure that you have fulfilled all these prerequisites before moving on to the next step.

Helm Charts Download

Contact customer support to determine the version of AGILITY to deploy.

mkdir -p agility-charts && cd agility-charts export AGILITY_VERSION=3.86.3

Store the B-Yond License on a temporary directory

export BYOND_LICENSE_PATH="/tmp/license.token" vi ${BYOND_LICENSE_PATH}

Verify jq and helm are available on your laptop (UNIX command)

red='\033[0;31m' green='\033[0;32m' clear='\033[0m' if ! command -v jq 2>&1 > /dev/null; then echo -e "${red}jq.............................ERROR. Please install it before continuing${clear}"; else echo -e "${green}jq.............................OK${clear}"; fi; if ! command -v helm 2>&1 > /dev/null; then echo -e "${red}helm...........................ERROR. Please install it before continuing${clear}"; else echo -e "${green}helm...........................OK${clear}"; fi

Ensure jq and helm binaries meet the required version.

Pull the charts:

[Optional] Test environment

Before starting with the installation, you can test your environment by creating a Pod with a PersistentVolumeClaim

  1. Create an ephemeral namespace

  2. Create the imagePullSecret to pull images from the B-Yond Container registry:

  3. Create the PersistentVolumeClaim and Pod definitions

  4. Ensure Pod and PVC are created successfully

  5. Remove namespace

Deploy agility-system

These components deploy the Kubernetes operators that are required for AGILITY installation:

To deploy the agility-system chart, follow these steps:

  1. Create the imagePullSecret to pull images from the B-Yond Container registry:

  2. Run the Helm command to deploy agility-system:

Deploy agility-services

The agility-services deployment includes the following components:

  • Database engine: PostgreSQL

  • Message bus: Kafka

  • Object storage: MinIO

  • Identity provider: Keycloak

  • AGILITY Operator

To deploy the agility-services chart, follow these steps:

  1. Create the target namespace (throughout this document is assumed to be agility)

  2. Create the imagePullSecret docker secret to pull images.

  3. Create the MinIO admin secret (ensure you backup this value):

    ℹ️ root-password must be at least 8 characters long.

  4. Create the Keycloak admin secret (ensure you backup this value):

  5. Create the B-Yond license secret:

  6. Create an overrides values file (options available in the agility-services chart):

    ℹ️ Adjust volumes sizes and resource assignation. Default values are recommended for standard AGILITY usage.

  7. Run the Helm command to deploy agility-services:

  8. Wait until all Pods are in Running or Completed state and all Running items show all expected containers running under READY column.

    The following is an example:

Deploy AGILITY

To deploy the AGILITY application chart, follow these steps:

  1. Create an override values file (options available in the AGILITY chart):

  2. Run the Helm command to deploy AGILITY:

  3. Wait until all Pods are in Running or Completed state and all Running items show all expected containers running under READY column.

    The following is an example:

  4. Once AGILITY is deployed, you can connect to the UI using port-forwarding:

  5. Access AGILITY in your browser at http://localhost:3000/cv/

    • username: agility-admin@b-yond.com

    • password: agility-admin@b-yond.com

    ℹ️ The default password must be modified on first login.

    To stop the port-forwarding process, press Ctrl+C in the terminal where you executed the command.

Expose AGILITY UI

To make AGILITY accessible from outside the cluster, various options can be used to expose the agility ClusterIP Kubernetes service. You can leverage the following Kubernetes constructs that align with your predefined guidelines. This includes:

  • Ingress

  • LoadBalancer Service

  • NodePort

Consider your specific network infrastructure, cloud provider capabilities, and security requirements when choosing the appropriate method to expose AGILITY.

 

Uninstall

To uninstall the AGILITY deployment and associated resources:

  1. Delete the Helm charts at the namespace level:

  2. Remove namespace