Deploy Hydrolix
Now that the environment is setup on Linode, we need to create the Hydrolix configuration hydrolix.yaml
:
---
apiVersion: hydrolix.io/v1
kind: HydrolixCluster
metadata:
name: <Please provide your namespace>
spec:
admin_email: <Please provide your email>
db_bucket_url: https://bucket.region.linodeobjects.com <replace with your bucket URL>
hydrolix_url: https://hostname.company.net <replace with your comany hostname for Hydrolix>
catalog_db_admin_user: linpostgres
catalog_db_admin_db: postgres
catalog_db_host: lin-yyyyy-xxxx-pgsql-primary-private.servers.linodedb.net <replace with your private network host created before>
pg_ssl_mode: require
env:
AWS_ACCESS_KEY_ID: <Please provide the AWS_ACCESS_KEY_ID created earlier>
ip_allowlist: <This allow the cluster to be fully accessible, you can restrict to your IP>
- 0.0.0.0/0
scale_profile: prod <You can change the scale_profile to whatever fits your needs>
scale:
postgres:
replicas: 0
We also need a secret.yaml
which contains our AWS Secret Key:
---
apiVersion: v1
kind: Secret
metadata:
name: curated
namespace: <Please provide your namespace>
stringData:
AWS_SECRET_ACCESS_KEY: <Please provide the AWS_SECRET_ACCESS_KEY created earlier>
ROOT_DB_PASSWORD: <Please provide your postgres password created earlier>
type: Opaque
And finally we need to use the kustomization.yaml
to apply:
---
namespace: <Please provide your namespace>
resources:
- https://www.hydrolix.io/operator/latest/operator-resources?namespace=<Please provide your namespace>
- secret.yaml
- hydrolix.yaml
After all those files are created you can deploy Hydrolix by using the following command:
kubectl apply -k .
This needs to be run from the folder containing the different yaml files created earlier.
Deploy the Hydrolix Operator
The Hydrolix operator resources API generates all the Kubernetes resource definitions required for deploying the operator, service accounts, and role permissions. Once deployed, the operator will manage all Hydrolix cluster deployments. To upgrade a deployment to a new version, repeat this step.
curl "https://www.hydrolix.io/operator/latest/operator-resources?namespace=${HDX_KUBERNETES_NAMESPACE}" > operator.yaml
Apply this operator configuration to your Kubernetes cluster with the following command:
kubectl apply -f operator.yaml
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 IP you can use the kubectl get services
command.
kubectl get services
intake-api ClusterIP 10.64.10.148 <none> 8080/TCP 2m51s
keycloak ClusterIP 10.64.8.47 <none> 8080/TCP 2m51s
native ClusterIP 10.64.8.158 <none> 9000/TCP 2m51s
postgres ClusterIP None <none> 5432/TCP 2m51s
prometheus ClusterIP None <none> 9090/TCP 2m51s
query-head ClusterIP 10.64.8.199 <none> 9000/TCP,8088/TCP 2m51s
rabbit ClusterIP None <none> 5672/TCP,15692/TCP,4369/TCP 2m51s
redpanda ClusterIP None <none> 9092/TCP,8082/TCP,33146/TCP,9644/TCP 2m51s
stream-head ClusterIP 10.64.2.40 <none> 8089/TCP 2m51s
traefik LoadBalancer 10.64.14.42 WW.XX.YYY.ZZZ 80:31708/TCP,9000:32344/TCP 2m50s
turbine-api ClusterIP 10.64.15.225 <none> 3000/TCP 2m51s
ui ClusterIP 10.64.3.254 <none> 80/TCP 2m50s
validator ClusterIP 10.64.15.112 <none> 8089/TCP 2m51s
version ClusterIP 10.64.12.105 <none> 23925/TCP 2m51s
zoo ClusterIP None <none> 2181/TCP 2m51s
The public IP address for traefik is the A record you should create.
Updated about 4 hours ago