Datalore Help

Install Datalore Enterprise in EKS

Get Datalore configuration files

  1. Clone the datalore-configs repository.

  2. Check out the required release branch (2022.1.4 for the latest one).

Configure AWS access

  1. Install AWS CLI.

  2. Run aws configure

  3. Enter your AWS Access Key ID and AWS Secret Access Key.

Install EKS

  1. Download terraform CLI.

  2. Navigate to the aws/eks directory in the datalore-configs repository.

  3. In the main.tf file, change us-east-1 to your aws region under locals.region

  4. Run terraform init

  5. Run terraform apply

Add an EKS cluster config to your k8s configurations

Run aws eks update-kubeconfig --name datalore

    Configure traffic routing

    1. Decide what hostnames you will use for Hub and for Datalore (later referred to as HUB_HOSTNAME and DATALORE_HOSTNAME).

    2. Run the following command to install the Nginx ingress controller: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/aws/deploy.yaml

    3. Run kubectl get -n ingress-nginx svc ingress-nginx-controller Find the hostname in the EXTERNAL-IP field (ELB_HOSTNAME later). Create CNAME DNS records for both HUB_HOSTNAME and DATALORE_HOSTNAME pointing to ELB_HOSTNAME.

    4. Add SSL certificates and keys to Kubernetes secrets (replace *_HOSTNAME.cert and *_HOSTNAME.key to the names of the certificate and the private key files for the respective domain):

      • kubectl create secret tls datalore-tls --cert=DATALORE_HOSTNAME.cert --key=DATALORE_HOSTNAME.key

      • kubectl create secret tls hub-tls --cert=HUB_HOSTNAME.cert --key=HUB_HOSTNAME.key

    5. Prepare a datalore-ingress.yaml ingress config with the following content (replace *_HOSTNAME with the respective hostnames):

      apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: datalore-tls-nginx annotations: kubernetes.io/ingress.class: "nginx" spec: tls: - hosts: - HUB_HOSTNAME secretName: hub-tls - hosts: - DATALORE_HOSTNAME secretName: datalore-tls rules: - host: HUB_HOSTNAME http: paths: - path: / pathType: Prefix backend: service: name: hub port: number: 8082 - host: DATALORE_HOSTNAME http: paths: - path: / pathType: Prefix backend: service: name: datalore-on-premise port: number: 8080
    6. Apply datalore-ingress.yaml: kubectl apply -f datalore-ingress.yaml

    Install and configure Hub

    1. Follow the Hub installation procedure.

    2. When configuring Hub volumes (step 1), replace the contents of statefulSet.yaml with the following:

      apiVersion: apps/v1 kind: StatefulSet metadata: name: hub spec: serviceName: hub selector: matchLabels: io.kompose.service: hub template: metadata: labels: io.kompose.service: hub spec: securityContext: fsGroup: 13001 containers: - image: jetbrains/hub:2021.1.14194 name: hub ports: - containerPort: 8080 volumeMounts: - mountPath: /opt/hub/data name: hub-volume subPath: data - mountPath: /opt/hub/conf name: hub-volume subPath: conf - mountPath: /opt/hub/logs name: hub-volume subPath: logs - mountPath: /opt/hub/backups name: hub-volume subPath: backups volumeClaimTemplates: - metadata: name: hub-volume spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 10G

    Install and configure Datalore

    1. Follow the Datalore installation procedure.

    2. When configuring Datalore volumes, replace the contents of volumes_config.yaml with the following (you may set volume sizes if necessary):

      apiVersion: apps/v1 kind: StatefulSet metadata: name: datalore-on-premise spec: volumeClaimTemplates: - metadata: name: postgresql-data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 20G - metadata: name: storage spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 100G
    Last modified: 28 April 2022