Kubernetes Installation Steps
Requirements
- Docker login credentials (reach out to us if you were not provided docker images).
- Access to a Kubernetes cluster:
- Minimum node requirements
1x t3.medium
1x m5.xlarge
- Minimum node requirements
- Helm [https://helm.sh/docs/intro/install/]
- Example configurations:
- We will provide example helm charts for the configuration.
Download images from Docker
First, log into Docker Hub with the credentials provided to you to access the Docker images in the private registry. 🐳
Download the images provided to you. These should have the format registry.onprem.patronus.ai/<repository>:<tag>
. For example, this command will pull the patronus-backend
image with the 2024-08-14
tag.
If image pull was successful, you should see the following by running docker image ls
:
We have the following private and public docker images.
Private Docker Images:
- patronus-backend
- patronus-migrate
- patronus-evaluation-api
- patronus-model-proxy-api
- patronus-accounts-api
- patronus-app
- patronus-admin-portal
- evaluators images, eg. evaluator-sdk-judge
Public docker images:
- Hasura: [docker.io/hasura/graphql-engine:v2.26.0]
- Vouch-proxy: [quay.io/vouch/vouch-proxy:latest]
- PostgreSQL: [docker.io/bitnami/postgresql:16.0.0-debian-11-r13]
- Redis: [docker.io/bitnami/redis:7.2.3-debian-11-r0]
Deploy Helm Charts
Now that you have successfully pulled docker images, we are ready to deploy helm charts! :chart_with_upwards_trend:
- Verify that you can connect to your kubernetes cluster. You will be installing Patronus AI services into new namespace.
- Install Patronus helm registry:
You should now be able to see patronus-stack
Helm charts:
- Update these parameters in the values.yaml file you were provided, following the patronus-stack chart examples. If you were not sent example .yaml files, please reach out to our team.
These are the values you will need to fill in:
values.yaml
:<GLOBAL_IMAGE_TAG>
Specifies the image tag to use for deployments. Typically indicates the version of the container image.<GLOBAL_IMAGE_REGISTRY>
Specifies the registry where the container images are hosted.<GLOBAL_ADMIN_SECRET>
The key used for Fernet encryption. This key should be securely stored and managed.<GLOBAL_FERNET_KEY>
The key used for Fernet encryption. This key should be securely stored and managed (base64 encoded).<GLOBAL_POSTGRESQL_POSTGRES_PASSWORD>
The password for the PostgreSQL admin user.<GLOBAL_POSTGRESQL_PASSWORD>
The password for accessing PostgreSQL.<GLOBAL_REDIS_PASSWORD>
The password for accessing the Redis service.<POST_INSTALL_IMAGE_TAG>
Image tag to be used on post-install step.<POST_INSTALL_CUSTOMER_NAME>
customer name.<PATRONUS_APP_HOST>
to the URL of the frontend application eg. patronus-app.[your domain].<PATRONUS_DOMAIN>
Domain.<PATRONUS_BACKEND_API_HOST>
to the backend API URL, eg. patronus-backend-api.[your domain].<PATRONUS_ADMIN_PORTAL_HOST>
Optional if we are exposing Admin-portal dashborad, eg. patronus-admin-portal.[your domain].<GOOGLE_API_CLIENT_ID>
Optional if we are using Google values example<GOOGLE_CLIENT_SECRET>
Optional if we are using Google values example
- Install patronus-stack chart:
You should see the following if successful:
Validate your deployment
Run kubectl get svc -n <your_namespace>
The output should look something like this:
Congratulations! You have now deployed Patronus AI in your environment. 🦄