Azure
Installing Trieve on Azure (AKS)
Things you need:
- Domain name
- helm cli
- azure cli
- kubectl
- k9s (optional)
Clone the Trieve repository
Login to Azure
Provision Terraform
Azure should be configured with your IAM credentails chosen. Run the following commands to create the AKS cluster
Login to the cluster
Install Trieve Depenedencies
Trieve depends on the following:
- Keycloak (or some other oidc compliant Auth Provider)
- Postgres We are using the CloudNativePG operator.
- Redis We are using the bitnami redis helm chart.
- Clickhouse We are using clickhouse-operator.
- Qdrant We are using qdrant-helm chart.
Ingress nginx + Cert Manager (optional)
Ingress-nginx + Cert manager is how we will expose the trieve services to the internet. Feel free to use whatever ingress controller you are comfortable with.
Clickhouse
First install the clickhouse operator and clickhouse installation.
Note that this has a preconfigured password and user. We will use these in the helm chart. They will need to be changed in a production environment according to your password policy.
Check the status of the clickhouse installation.
When the above command returns the following, clickhosue is installed.
OIDC Compliant server (Keycloak)
This is an example of installing keycloak on Azure. You can use any other OIDC compliant provider.
This is using postgresql as a statefulset with a prefilled username/password, you can use a managed service like RDS or CloudNativePG. For higher security.
This also includes a KeycloakRealm that contains the recommended default settings for a keycloak realm. This also has a prefilled clientSecret which should be rotated post installation.
To verify Keycloak has started run
Install the Keycloak Ingress and set your A record
-
Edit
helm/test-production/keycloak-extras/keycloak-ingress.yaml
and replaceyourdomain.com
with your domain name. -
Apply the ingress
You will get an output like this:
Add an A record to your domain registrar with the IP address of the ingress.
Configure Keycloak authorized redirect URIs
- Access the Keycloak admin console at https://auth.YOUR-DOMAIN.COM/admin/master/console/#/trieve/clients/list
- Login with the default credentials: Username: admin Password: password
- Select the “trieve” client and add the following configurations:
Valid redirect and Valid post logout redirect URIs:
- Save the changes
Qdrant helm chart
For Qdrant we recommend you install it via helm chart, with these values.yaml. Note that this is for a qdrant cluster with 3 nodes and 10 GB ram per node.
Each node also has qdrant-node taint on it, so that the trieve pods can be scheduled on the same nodes types
Note that apiKey
is also preset to qdrant-api-key
, this may need to be changed if you plan on enabling
qdrant ingress.
Verify Qdrant is installed
Postgresql (via CloudNativePG)
Insstall the postgresql operator and postgresql installation.
Verify the postgresql installation via.
Redis helm chart
For simplicity, we are using the bitnami redis helm chart. You can use the azure redis cache service if you prefer.
Install Trieve
Modify domain names
If you followed the steps above, values.az.yaml
should be mostly preconfigured for you.
The only thing needed to modify are the domain names. Replace every instance of yourdomain.com
with your domain name.
We highlight the locations where you need to replace yourdomain.com
with your domain name below.
Install the helm chart
Verify the installation
After installing, kubectl get deployments
should look like this.
Set Ingress
Get Ingress ip address
You will get an output like this:
Add A records
Add A records to your domain registrar with the IP address of the ingress.
You will also need to update any other references to that domain name in the helm/values.az.yaml
file.
Ensure you run helm upgrade -i -f helm/values.az.yaml trieve-az helm/
after making changes. to apply them.