Skip to main content
Version: 1.15.0

Install Using Helm Charts

This topic describes how to manually install EGS using Helm charts.

info

Across our documentation, we refer to the workspace as the slice workspace. The two terms are used interchangeably.

Before you begin the installation, ensure you meet the following prerequisites:

  • CLI tools required for installation.
  • A valid license to install EGS. To get a trial license, you must register with Avesha. To register, visit the KubeSlice registration page. To know more about license management, see License Management.

Add and Update the Helm Repository

Use the following command to add and update the Helm repository:

helm repo add egs https://smartscaler.nexus.aveshalabs.io/repository/kubeslice-egs-helm-ent-prod
helm repo update

Create a Namespace

To create a kubeslice-controller namespace on the controller cluster, use the following command:

kubectl create namespace kubeslice-controller

Apply the License Secret File

To apply the license secret file, use the following command:

kubectl apply -f <license-secret-file> -n kubeslice-controller

After the license is applied, it is stored securely in the EGS system. You can manage the license through CLI. The license secret is stored in the kubeslice-controller namespace and can be viewed using:

kubectl get secret <license-secret-name.yaml> -n kubeslice-controller -o yaml

Install the EGS Controller

  1. Create a values-controller.yaml file with the following properties:

    global:
    imageRegistry: docker.io/aveshasystems
    # user can configure labels or annotations that EGS Controller namespaces should have
    namespaceConfig:
    labels: {}
    annotations: {}
    kubeTally:
    enabled: false # need postgress avaialble for true
    postgresSecretName: POSTGRES_SECRET_NAME
    postgresAddr: POSTGRES_ADDR
    postgresPort: POSTGRES_PORT
    postgresUser: POSTGRES_USER
    postgresPassword: POSTGRES_PASSWORD
    postgresDB: POSTGRES_DB
    postgresSslmode: POSTGRES_SSLMODE
    prometheusUrl: PROMETHEUS_ENDPOINT
    kubeslice:
    controller:
    endpoint: CONTROLLER_ENDPOINT
note

In a multi-cluster deployment, the controller cluster must be able to reach the Prometheus endpoint running on the worker clusters.

warning

If the Prometheus endpoints are not configured, you may experience issues with the dashboards (for example, missing or incomplete metric displays).

  1. Use the values-controller.yaml in the following command to install the EGS Controller:

    helm install egs-controller kubeslice-egs-helm-ent-prod/kubeslice-controller-egs -f <values-controller.yaml>
  2. Verify the installation by checking the status of the EGS Controller pods:

    kubectl get pods -n kubeslice-controller

    Example Output

    NAME                                                READY   STATUS      RESTARTS   AGE
    egs-core-apis-686746d756-c2ngd 1/1 Running 0 83s
    egs-gpr-manager-74f64ff8c7-h8dr2 1/1 Running 0 2m25s
    egs-inventory-controller-manager-86b7c49fdf-975bb 1/1 Running 0 2m25s
    egs-queue-manager-cfcfb9d85-s8qlb 1/1 Running 0 2m25s
    kubeslice-api-gw-7cd4fb4d6-rmwfk 1/1 Running 0 83s
    kubeslice-controller-manager-678985bdd6-75w5t 2/2 Running 0 2m25s
    kubeslice-ui-5c55bd69df-vz2gd 1/1 Running 0 83s
    kubeslice-ui-proxy-6b6574bd99-7h9rl 1/1 Running 0 83s
    kubeslice-ui-v2-589cb9b8cb-lxgfx 1/1 Running 0 83s
    kubetally-pricing-service-b69c65c7-7gq7x 1/1 Running 0 2m25s
    kubetally-pricing-updater-job-rdpnf 1/1 Running 0 2m25s
    kubetally-report-7c6fdbcb88-6bvdz 1/1 Running 0 2m25s
    license-job-de5b5791-dwmqb 0/1 Completed 0 2m6s

Install the EGS Admin Portal

  1. Create a file called values-ui.yaml with the following properties:

    global:
    imageRegistry: docker.io/aveshasystems # Docker registry for the UI images
    kubeslice:
    prometheus:
    url: PROMETHEUS_ENDPOINT
    uiproxy:
    service:
    type: ClusterIP # Service type for the UI proxy
    ## if type selected to NodePort then set nodePort value if required
    # nodePort:
    # port: 443
    # targetPort: 8443
    labels:
    app: kubeslice-ui-proxy
    annotations: {}

    ## Ingress support is only available from EGS version 1.12.1.
    ingress:
    ## If true, ui‑proxy Ingress will be created
    enabled: false
    ## Port on the Service to route to
    servicePort: 443
    ## Ingress class name (e.g. "nginx"), if you’re using a custom ingress controller
    className: ""
    hosts:
    - host: ui.kubeslice.com # replace with your FQDN
    paths:
    - path: / # base path
    pathType: Prefix # Prefix | Exact
    ## TLS configuration (you must create these Secrets ahead of time)
    tls: []
    # - hosts:
    # - ui.kubeslice.com
    # secretName: uitlssecret
    annotations: []
    ## Extra labels to add onto the Ingress object
    extraLabels: {}

    egsCoreApis:
    enabled: true # Enable EGS core APIs for the UI
    service:
    type: ClusterIP # Service type for the EGS core APIs
    #### Helm Flags and Verification Settings ####
  2. Use the values-ui.yaml in the following command to install the EGS Admin Portal:

      helm install egs-controller kubeslice-egs-helm-ent-prod/kubeslice-controller-egs -f <values-ui.yaml>

Create a Project

  1. Create a file called project.yaml with the following properties:

    apiVersion: controller.kubeslice.io/v1alpha1
    kind: Project
    metadata:
    name: avesha
    namespace: kubeslice-controller
    spec:
    serviceAccount:
    readWrite:
    - admin
  2. Apply the project.yaml file by using it in the following command:

    kubectl apply --kubeconfig  <KUBECONFIG> --context <KUBECONTEXT> -f project.yaml

Log in to the Admin Portal

To log in to the portal:

  1. Get the Admin Portal URL, use the following command:

    echo "EGS Admin Portal Login: https://$(kubectl --kubeconfig <KUBECONFIG> --context <KUBECONTEXT> get svc kubeslice-ui-proxy -n kubeslice-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}')"

    Example

    echo "EGS Admin Portal Login: https://$(kubectl --kubeconfig kubeconfig.yaml --context context-cs24taiewqa get svc kubeslice-ui-proxy -n kubeslice-controller -o jsonpath='{.status.loadBalancer.ingress[0].ip}')"

    Example Output

    EGS Admin Portal Login: https://129.1XX.116.71
  2. Access the Admin token, use the following command:

    kubectl --kubeconfig <KUBECONFIG> --context <KUBECONTEXT> -n kubeslice-avesha describe secret kubeslice-rbac-rw-admin | tail -n 1

    Example

    kubectl   --kubeconfig kubeconfig.yaml --context context-cs24taiewqa -n kubeslice-avesha describe secret kubeslice-rbac-rw-admin | tail -n 1

    Example Output

    token:      xxXXXXciOiJSUzI1NiIsImtpZCI6IjYwaGl4V2RMVGhjcHB0ZXpjSHJaQWtycVhRNkdkQ3dwc3lRbHN4SEJ5N3MifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlc2xpY2UtYXZlc2hhIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Imt1YmVzbGljZS1yYmFjLXJ3LWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6Imt1YmVzbGljZS1yYmFjLXJ3LWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiYjZmZTRiMGYtYTc1Ny00MjBmLTg4NDEtMTVhY2I3ZjBhYzA2Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmVzbGljZS1hdmVzaGE6a3ViZXNsaWNlLXJiYWMtcnctYWRtaW4ifQ.W6-B9Ly0cf2aN5b1gSmgPoFdh6bK4SeWBfk3A0eNLtddv3jOBHF-66W_9rzN2AoNZYjqRz5hRxBRCfarA0dmP5xKc2JiKCRrbDmCjW4z_88lc4dlyUsVv9B-q_1Cq25q21OXWoQ4HurnCWijL7di8U2HL1d9ur_ke466gYsOAm3Y8Zf8_psuLRKIYMN5J95t6AkOy5INjH0UQm0TfaposyzPD0lw9vVCKJQJKJaT76MLZPy0ZqFVHLIBfwWk2UwE1hxdJyoXENpPwOnFvjIOaaOIm-bnfZVX4C9zSWovfxHo5xHEszz-hWAI2ROkCcOeZDgP4hxxxxxxxxx-XX
  3. Log in to the Admin Portal using the URL from the Step 1. Use the admin access token to log in to the Admin Portal.

    installation

Register a Worker Cluster

After a successful login, you can start using the EGS Admin Portal to manage your Kubernetes clusters and applications. You can register a worker cluster, create workspaces, and manage applications within the EGS environment. For more information on how to register a worker cluster, see Register a Worker Cluster.

Create a Workspace

After registering a worker cluster, you can create a workspace. A workspace is a logical boundary for a user or a team workspace. The workspace can be viewed as the workspace where users can deploy their AI workloads. For more information on how to create a workspace, see Create a Workspace.