To run the following steps, first you should:
-
Install Terraform - required to deploy, delete and check the status of current cloud infrastructure from resource files from the command line
-
Install Azure CLI - allows you to log in to your Azure account and retrieve details about deployed instances. Accessed using
az
-
Authenticate with Azure
az login
-
If you have access to more than one subscription, you can set the current subscription by using the relevant
SUBSCRIPTION_ID
from the output of the above login command:az account set --subscription="SUBSCRIPTION_ID"
-
Install
kubectl
- a command line tool for interacting with a kubernetes cluster via it's API
To connect to a cluster, you need to set the Kubernetes credentials file path as the KUBECONFIG
environment variable.
-
Change to the relevant environment directory (e.g.
infrastructure/environments/non-prod
) -
Source the environment variables
set -a && source .env && set +a
-
Create the credentials file by running this script and selecting the kubernetes cluster that you want to point to (by environment)
../../scripts/update-kubernetes-config.sh
Now you can run kubectl
commands against the selected cluster, e.g.
kubectl get nodes
-
Apply manifest to the cluster - to do this, clone the deployments repo, install the necessary prerequisites, go to
cluster-init
dir and runmake overlay=non-prod
-
Validate the Istio installation
kubectl get svc --namespace istio-system --output wide
-
Confirm that the required pods have been created
kubectl get pods --namespace istio-system
-
Note: you will need to install an SSL certificate and private key. There is a
./certs.sh
for a self-sign, or you can obtain a valid cert from Let's Encrypt (e.g. usingacme.sh
). You may need to restart the ingress gateway pod to pick up the new certs.kubectl create -n istio-system secret tls istio-ingressgateway-certs --key key.txt --cert crt.txt