AWS EKS quick start
Our quick start guide uses the example Terraform infrastructure to deploy the QuickCase app.
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 AWS
- A user account on AWS
- 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
Limitations
The example deployments are meant to demonstrate features and deployment scenarios only, this quick start guide and the examples comes with these warnings:
- This is not production ready, for a production deployment do due diligence on the deployed infrastructure.
- 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.
- 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.
- DNS configuration is a manual setup. We recommend ExternalDNS for this, the AWS example infrastructure includes a demonstration of ExternalDNS.
Terraform deployment
cd aws
terraform init
terraform plan
terraform apply --var-file=quickstart.tfvars
kubectl
configuration
./kubeconfig.sh
This sets up Kubernetes access for EKS.
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:
attachment-store-s3.yaml
- configuration of the S3 bucket for attachment store.dns.yaml
- configuration for the predefined manual DNS namesnetpol-lb-stores.yaml
- network policies to allow access to the databases, loadbalancersoidc-stub.yaml
- configuration for the test OIDC providerrds-cases-credentials.yaml
- database credentials and configuration for the cases databaserds-definitions-credentials.yaml
- database credentials and configuration for the definitions databaseservice-account-attachment-store-base.yaml
- service account that allows attachment-store to write to the S3 bucket
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 thehelm test
pods around even if they succeed. Makes debugging simpler.http-service.yaml
- We are deploying withhttp
load balancers. The default will deploy withhttps
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-aws-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:
- http://admin.internal - for the admin interface to load configuration
- http://work.internal - for the case management interface to manage cases