Deploy to EKS

hkt create the operator and apply it

hkt operator-resources > operator.yaml
kubectl apply -f operator.yaml



If you get a missing AWS_STORAGE ROLE error when creating your operator.yaml, you can set it as follows in your environment variables by using:

export AWS_STORAGE_ROLE="arn:aws:iam::$AWS_ACCOUNT_ID:role/$CLIENT_ID-bucket"

hkt create the scale-profile and apply it.

hkt hydrolix-cluster --scale-profile dev > hydrolixcluster.yaml
kubectl apply -f hydrolixcluster.yaml

Within the hydrolixcluster.yaml a default scale is defined for the Hydrolix cluster. More information can be found here Scaling on GCP should you wish to deploy differently than the default.

The default setting applied will bring up a minimal size of infrastructure of stateful and stateless components


ServiceDescriptionReplicasCPUMemoryStorageData Storage
postgresThe Core1416Gi5Gi100Gi
prometheusReporting and Control115Gi5Gi50GB


ServiceDescriptionReplicasCPUMemoryStorageData Storage
keycloakThe Core112Gi5Gi-
operatorKubernetes Operator1500m1Gi5Gi-
traefikThe Core211Gi5Gi-
versionThe Core1500m1Gi1Gi-
zookeeperThe Core111Gi5Gi-

Set your cluster as the current kubectl context

kubectl config set-context --current --namespace="$CLIENT_ID"

Create your DNS record

The final step in your deployment should be creating the DNS record so you are able to access the services.
To retrieve the traefik CNAME you can use the kubectl get services command.

$ kubectl get services
NAME          TYPE           CLUSTER-IP       EXTERNAL-IP                                                                     PORT(S)                                AGE
intake-api    ClusterIP   <none>                                                                          8080/TCP                               68m
keycloak      ClusterIP    <none>                                                                          8080/TCP                               70m
native        ClusterIP     <none>                                                                          9000/TCP                               68m
postgres      ClusterIP      None             <none>                                                                          5432/TCP                               71m
prometheus    ClusterIP      None             <none>                                                                          9090/TCP                               68m
query-head    ClusterIP    <none>                                                                          9000/TCP,8088/TCP                      68m
rabbit        ClusterIP      None             <none>                                                                          5672/TCP,15692/TCP,4369/TCP            71m
redpanda      ClusterIP      None             <none>                                                                          9092/TCP,8082/TCP,33146/TCP,9644/TCP   71m
stream-head   ClusterIP   <none>                                                                          8089/TCP                               68m
traefik       LoadBalancer                                    80:31635/TCP,9000:32509/TCP            68m
turbine-api   ClusterIP     <none>                                                                          3000/TCP                               68m
ui            ClusterIP   <none>                                                                          80/TCP                                 68m
version       ClusterIP    <none>                                                                          23925/TCP                              68m
zoo           ClusterIP      None             <none>                                                                          2181/TCP                               71m


Enabling IP and SSL/TLS access.

This may also be a good time to set-up the IP Access control and TLS certificate. You can find instructions in the Enabling Access & TLS section.

Checking your deployment.

You can now check the status of your deployment. This can all be done via the Kubectl command or via the Google Cloud console, for example to see the status of each pod running:

kubectl get pods --namespace $CLIENT_ID
NAME                           READY   STATUS    RESTARTS   AGE
batch-head-79cb89b844-b4wpb    1/1     Running   2          80m
batch-peer-7cc54bfb76-282p8    1/1     Running   0          72m
intake-api-675bfd4854-98x88    1/1     Running   0          51m
keycloak-5c99c6549b-gvjqr      1/1     Running   0          13d
merge-head-774fdcc468-gznxb    1/1     Running   0          80m
merge-peer-76ccf8d966-sfz45    1/1     Running   0          72m
operator-9957b786d-hww9x       1/1     Running   0          47m
postgres-0                     1/1     Running   0          10d
query-head-5bcd8989c5-wfq89    1/1     Running   0          72m
query-peer-7b85c54bb6-7x7g8    1/1     Running   0          72m
query-peer-7b85c54bb6-zjtwp    1/1     Running   0          33m
rabbitmq-66847bbfc7-wdm4x      1/1     Running   0          72m
redpanda-0                     1/1     Running   0          43m
redpanda-1                     1/1     Running   0          43m
stream-head-7f4dcdc89c-fr899   1/1     Running   0          39m
stream-peer-667c6ddbdd-knrps   1/1     Running   0          51m
traefik-8444885db7-g2vhm       1/1     Running   0          61m
traefik-8444885db7-tp58j       1/1     Running   0          80m
turbine-api-566c9f59bd-w98fq   1/1     Running   0          72m
ui-b8844cc76-5cbgp             1/1     Running   0          80m
version-84466c6dbb-cqgvk       1/1     Running   0          80m
zookeeper-6d5f66fbb6-gwxn6     1/1     Running   0          13d

The Final Step

You should have received an email that will now allow you to set a password and login. If you do not receive this email, please feel free to contact us at [email protected] and we'll happily assist you.

Did this page help you?