Skip to main content

Azure AKS quick start

Our quick start guide uses the example Terraform infrastructure to deploy the QuickCase app.

info

The QuickStart guide requires access to the QuickCase helm repository to install the chart. Please contact QuickCase to discuss access.

To use these you will need:

  • Terraform
  • Helm
  • A cloud account with Azure
  • A user account on Azure
  • Access to the QuickCase helm chart repository

To use these examples first checkout the example repo:

git clone https://github.com/quickcase/infra-examples.git
caution

Limitations

The example deployments are meant to demonstrate features and deployment scenarios only, this quick start guide and the examples comes with these warnings:

  1. This is not production ready, for a production deployment do due diligence on the deployed infrastructure.
  2. This will deploy a cluster, databases, and blob stores. These are not designed to reuse your existing infrastructure. Feel free to adapt them to do that if needed.
  3. We use our test OIDC provider. We use this to exercise OIDC integration for our apps and it is good enough to demonstrate a working QuickCase installation. To do a proper deployment you will need a production OIDC provider. The example AWS infrastructure contains examples for Keycloak and Cognito.
  4. DNS configuration is a manual setup. We recommend ExternalDNS for this, the AWS example infrastructure includes a demonstration of ExternalDNS.

Terraform deployment

cd azure
terraform init
terraform plan
terraform apply --var-file=quickstart.tfvars

kubectl configuration

./kubeconfig.sh

This sets up Kubernetes access for AKS.

Deploy QuickCase application

Setup chart repo

We require the QuickCase chart repo to install the application:

Add the repo using helm repo add quickcase

Configuration snippets

Automatic

The terraform deployment has created a number of configurations that we will use in the deployment:

  • azure-pg-cases-credentials.yaml - database credentials and configuration for the cases database
  • azure-pg-definitions-credentials.yaml - database credentials and configuration for the definitions database
  • dns.yaml - configuration for the predefined manual DNS names
  • netpol-stores.yaml - network policies for the databases
  • oidc-stub.yaml - configuration for the test OIDC provider
  • storage-account.yaml - Azure blob store configuration

Static

We include these static configurations required by the deployment:

  • autoscaling-off.yaml - Turn off scaling. With this we don't need a Metric Server to drive the Horizontal Pod Autoscaler (HPA) on the cluster. The default chart configuration will use the HPA.
  • debug-tests.yaml - keeps the helm test pods around even if they succeed. Makes debugging simpler.
  • http-service.yaml - We are deploying with http load balancers. The default will deploy with https but then also requires you to correctly configure a certificate and DNS.
  • logs.yaml - Output human readable logs, to make it easier to read the logs in the Quickstart deployment.

Helm install

Now we can install the application:

install-chart-azure-quickstart.sh

Check that the installation went as planned

helm ls -n qc

Setup Manual DNS

Create the needed DNS entries in your hosts file on your local computer:

../hosts.sh qc qc-quickstart admin-ui:admin data-store-external:work-api case-ui:work attachment-store:document | sudo tee -a /etc/hosts
../hosts.sh qc qc-quickstart "" stub-oidc:auth | sudo tee -a /etc/hosts

Browse to QuickCase applications

To use the quickcase application you will want: