Installation

Before you begin:

Before installing DataCore Bolt, the Bolt images must be present in your private Docker registry. To download and push them to the private Docker registry follow these steps:

  1. Register with DataCore Support Portal.

  2. Navigate to the Downloads section on the DataCore Support Portal.

  3. Scroll down and open the DataCore Bolt toggle

    • These bundles are updated with the bolt-v1.0.0.tar.gz and MD5 checksum.

  4. Download the bolt-v1.0.0.tar.gz archive. Extract the tar archive using,

    Copy

    Command:

    tar xf bolt-v1.0.0.tar.gz
    The extracted file contains:
    1. Helm chart (helm-v1.0.0.tgz)

    2. Kubectl-bolt binary (bolt-v1.0.0.tar.gz)

    3. Images (images-v1.0.0.tar.gz)

    4. MD5 checksum (checksum.txt)

    Extract all the above files.
  5. Push the images extracted from images.tar to your private Docker registry.

  6. Next, update the image.registry and image.repo path present in Helm chart > values.yaml.

 

Installing DataCore Bolt:

  1. Add the label datacore.com/engine=io-engine to the nodes targeted to host DataCore Bolt. This will be used by the nodeSelector field to deploy io-engine pods only on the desired nodes. To add the label, execute:

    Copy

    Command

    kubectl label node <node_name> datacore.com/engine=io-engine
  2. Next, create a new namespace. This namespace will have all the DataCore Bolt components deployed in it. In the sample command given below, the namespace datacore is created.

    Copy

    Command

    kubectl create ns datacore
  3. If your Docker registry access is password-protected, imagePull credentials will be needed to pull images from the Docker registry. The following parameters have to be passed for the creation of a Docker registry secret:

    Secret name: The value of this parameter should be set the same as the key-value pair specified under the spec imagePullSecrets.secrets.name in values.yaml.

    docker_server: This parameter specifies the path to the local server registry

    user_email: This parameter specifies the email for Docker registry

    Copy

    Command

    kubectl create secret docker-registry <same-as-base.imagePullSecrets.secrets>  --docker-server="https://index.docker.io/v1/" --docker-username="<user-name>" --docker-password="<password>" --docker-email="<user-email>" -n datacore
  4. Download the dependent helm charts prior to the installation of DataCore Bolt. These charts include the following:

    etcd: this is used to maintain DataCore Bolt topology.

    Jaeger operator(optional): this is used for debugging any issues within the system.

    Loki stack: this is used for centralized logging.

    Copy

    Command

    helm dependency update
    Copy

    Sample Output:

    Getting updates for unmanaged Helm repositories...
    ...Successfully got an update from the "https://jaegertracing.github.io/helm-charts" chart repository
    Hang tight while we grab the latest from your chart repositories...
    ...Successfully got an update from the "grafana" chart repository
    ...Successfully got an update from the "bitnami" chart repository
    ...Successfully got an update from the "delieveryhero" chart repository
    Update Complete. ⎈Happy Helming!⎈
    Saving 3 charts
    Downloading etcd from repo https://charts.bitnami.com/bitnami
    Downloading jaeger-operator from repo https://jaegertracing.github.io/helm-charts
    Downloading loki-stack from repo https://grafana.github.io/helm-charts
    Deleting outdated charts
  5. Once all the dependent helm charts have been downloaded successfully, install DataCore Bolt. In the sample command given below, the release name is set as bolt and namespace as datacore.

    The installation is done based on the parameters set in the file values.yaml. To get more information on these parameters refer to Configurable installation parameters.

    Copy
    Command:
    helm install bolt . -n datacore

     

    Copy

    Sample output

    NAME: bolt
    LAST DEPLOYED: Mon May  2 19:11:10 2022
    NAMESPACE: datacore
    STATUS: deployed
    REVISION: 1
    NOTES:
    Datacore Bolt has been installed. Check its status by running:
    $ kubectl get pods -n datacore

    For more information or to view the documentation, visit our website at https://datacore.com.

    Verify the status of the pods by running the command:

    Copy

    Command

    kubectl get pods -n datacore
    Copy

    Sample Output:

    NAME                                    READY   STATUS    RESTARTS   AGE
    bolt-agent-core-574d466bbd-4svj5        1/1     Running   0          4m21s
    bolt-agent-license-846ccbf569-dcjxw     1/1     Running   0          4m21s
    bolt-api-rest-5b48c756cd-kxssd          1/1     Running   0          4m21s
    bolt-csi-controller-6f7c4d6556-kxzdh    3/3     Running   0          4m21s
    bolt-csi-node-4vm5b                     2/2     Running   0          4m21s
    bolt-csi-node-8s7df                     2/2     Running   0          4m21s
    bolt-csi-node-jbtf4                     2/2     Running   0          4m21s
    bolt-etcd-0                             1/1     Running   0          4m21s
    bolt-etcd-1                             1/1     Running   0          4m21s
    bolt-etcd-2                             1/1     Running   0          4m21s
    bolt-io-engine-p29fj                    2/2     Running   0          4m21s
    bolt-io-engine-p4vkx                    2/2     Running   0          4m21s
    bolt-io-engine-pfln5                    2/2     Running   0          4m21s
    bolt-loki-0                             1/1     Running   0          4m21s
    bolt-operator-diskpool-9c9b86bb-nj6v9   1/1     Running   0          4m21s
    bolt-promtail-bx7tc                     1/1     Running   0          4m21s
    bolt-promtail-hw6b2                     1/1     Running   0          4m21s
    bolt-promtail-xznlx                     1/1     Running   0          4m21s

    This concludes the installation of DataCore Bolt.

  6. The above output may vary as the pod name depends on the release name. The nomenclature of the pods follow <release_name>-pod_name format.