ZebClient Helm

Here you can find the helm charts supported by Zebware to be used to install ZebClient.

Deploy ZebClient with Helm

Prerequisites

For this installation you must have previously created this infrastructure:

  • Object Storage (S3 bucket or Azure Blob Container).

  • Redis(keydb) databse.

  • Kubernetes cluster.

Overview

Each installation of ZebClient could vary depending on each customer requirements. What it will be done is to install an agent in an existing node and verify if an "application" pod can use a ZebClient volume.

Note: In this case, we will assume that the node pool doesn't have taints and doesn't have any preferences about where the pods should be scheduled. This configuration is supported in Helm charts with Tolerations and NodeSelectors if is required but not included in this example.

Deploy Steps

Step 1: Get Required data

For this example we will use a Kubernetes cluster deployed in Azure(aks) and an azure blob storage container to be used for cold storage. This data is required to start with the deployment:

  • ZebClient license

  • Database url

  • Database password

  • Azure storage account name

  • Azure storage account key

  • Azure blob storage container name

Note: If you don't know how to create this resources you can follow this guide.

Step 2: Install Zebware Helm chart

helm repo add zebware https://gitlab.com/api/v4/projects/47395885/packages/helm/stable
helm repo update

Step 3: Deploy ZebClient singleton

This manages the dynamic provision of persistent volumes and data deletion from ZebClient filesystem depending of retention policy of the storage class.

Create a file called csi-singleton.yaml, for this file you will require :

  • ZebClient license.

  • Database url.

  • Database password.

cat << 'EOF' > csi-singletons.yaml
---
zebclient:
  license:
    key: "[zebclient_license]"
  agent:
    zcfs:
      metauri: "redis://[db_url]:6379/1"
      metapassword: "[db_password]"
EOF

and install csi-singletons chart in the cluster using the command:

helm upgrade --cleanup-on-fail \
  --install csi-singletons zebware/csi-singletons \
  --version=0.11.0 \
  --values ./csi-singletons.yaml

Step 4: Deploy ZebClient driver

This will manage the ops(read/write) towards ZebClient filesystem.

Create a file called csi-zebclient.yaml, for this file you will require all data mentioned in step 1.

cat << 'EOF' > csi-zebclient.yaml
---
zebclient:
  license:
    key: "[zebclient_license]"
  agent:
    zcfs:
      metapassword: "[db_password]"
      metauri: "redis://[db_url]:6379/1"
  coldStorage:
    enabled: true
    cloudProvider: "azure"
    azure:
      account:
        key: "[azure_storage_account_key]"
        name: "[azure_storage_account_name]"
      endpoint: "https://[azure_storage_account_name].blob.core.windows.net"
      container: "[azure_blob_storage_container_name]"
EOF

and install csi-singletons chart in the cluster using the command:

helm upgrade --cleanup-on-fail \
  --install csi-zebclient zebware/csi-zebclient \
  --version=0.11.0 \
  --values ./csi-zebclient.yaml

Then you are done with the deployment with Helm.

For a single node cluster you might get something like

kubectl get pods
NAME                  READY   STATUS    RESTARTS   AGE
csi-singletons-0      4/4     Running   0          1m
csi-zebclient-xxxxx   3/3     Running   0          1m

Last updated