# Development (Kubernetes)
# Local setup
This section describes the steps that are required to deploy and run ALEX on a local kubernetes cluster.
# Prerequisites
- Install docker, minikube, kubectl, helm and skaffold.
- Start minikube:
minikube start
. - Install necessary add-ons:
minikube addons enable ingress && \ minikube addons enable ingress-dns
1
2 - Add a host alias to the
/etc/hosts
file: Executeminikube ip
to get the IP address of the local cluster and add an entry<ip> alex
to the/etc/hosts
file. - Install secret:
kubectl apply -f infrastructure/helm-chart/secrets-local.yaml
- Install Keda:
helm repo add kedacore https://kedacore.github.io/charts && helm repo update
kubectl create namespace keda
helm install keda kedacore/keda --namespace keda
# Deploy ALEX to Minikube
- Ensure you use the local minikube kubernetes context:
kubectl config use-context minikube
- In the root of the repository, run
skaffold dev -p local
to execute the deployment. - Open
http://alex
in a Web browser.
# Remote setup
This section describes the steps that are required to deploy and run ALEX on a remote kubernetes cluster.
# Prerequisites
- Install microk8s on a server.
- Enable the following add-ons:
microk8s enable dns ingress registry storage
. - Copy the cluster details from
microk8s kubectl config view
to the local/.kube/config
file.
# Deploy ALEX to a remote cluster
- Create a file
./helm-chart/values-temp.yaml
, and set the necessary properties (seevalues-local.yaml
). - Switch to the kubernetes context of the cluster that you have entered earlier:
kubectl config use-context <context>
. - In the root of the repository, execute
skaffold run -p temp
to deploy the app.