Create a new AKS cluster, or choose an existing cluster to install Violet into. The cluster must have at least 2 nodes with at least 8GB of RAM. Standard DS2_V3 or bigger is a good choice. No other settings beyond the defaults are necessary. The recommended node has the minimum following properties:
architecture: amd64
osImage: Ubuntu 22.04.5 LTS or greater
Connect your workstation kubectl to the new AKS cluster. Substitute <resource-group-name> and <aks-cluster-name> with your new AKS cluster in the following:
Create a new file violet-values.yml containing your AWS credentials and specific application configuration:
Deploying or Updating Version-Locked Violet [OPTIONAL]
If you would like to lock the version of Violet that you are using and not automatically pull the latest version, add the following entry to your violet-values.yml file:
If you are deploying Violet in this environment for the first time, continue to step 3.
If you have already deployed Violet and are just locking the version or updating to a specific version of Violet, enter that versionTag in the violet-values.yml file and then skip to step 8.
Create a new kubernetes namespace for the Violet installation:
Install the nginx ingress controller chart which allows AKS to set up a load balancer to route traffic from the internet to the new Violet deployment:
Install the mezmo logging agent. This streams logs from your cluster to the violet team for troubleshooting and monitoring assistance.
Install the external-secrets chart. This is used to load some customer-specific secrets from AWS into the Violet deployment:
Create a secret that allows Kubernetes to access the Violet Helm Chart repository:
Login to the Helm repository:
Install the Violet Helm Chart:
Note that it may take up to 5 minutes to run the database provisioning scripts. You can check the status of the deployment by looking at the pods:
After installation is complete the helm chart will print our some information and commands including the URL to access your new deployment, how to get the IP Address that the deployment is served at (for setting up DNS rules) and how to obtain the auto-generated password for the violet_admin@violetlabs.com account.
domain: # The domain where Violet will be served. Subdomain must be "violet": violet.mydomain.com
customerName: # The customer name of your license. Provided by Violet
licenseKey: # Your license key. Provided by Violet & is a uuid
adminEmail: #admin user email for the customer
adminName: #admin user full name ("Firstname Lastname") for the customer
aws:
accessKeyId: # Your AWS Access key, provided by Violet
accessKeySecret: # Your AWS secret, provided by Violet
neo4j:
volumes:
data:
dynamic:
storageClassName: gp2
# optional: This is required if you wish to use an external database instead of an internal postgres db automatically spun up by the helm chart
postgresql:
enabled: false # This disables the internal postgresql db
auth:
host: # hostname for external db (e.g. '[db_name].postgres.database.azure.com')
password: # password for application db user, used by app
username: # username for application db user, used by app
adminPassword: # username for db, with migrations & seed permissions
adminUsername: # password for db, with migrations & seed permissions
image:
versionTag: # use correct version tag to lock a version and not always pull latest. Provided by Violet for initial deployment.