Set Up Developer Environment
VM Hardware Requirements
The hardware requirements are the same as what's listed in Hardware Requirements.
Software Requirements
K3s is the only officially supported way to install Nemesis. Installation instructions for Docker Desktop and Minikube do exist but may not be up to date.
Install Docker
Install Docker by following the official Docker installation guide. The installation instructions for Debian are replicated below:
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Install K3s
Install K3s with cri-dockerd to allow K3s to use Docker to deploy containers. This allows Skaffold and Nemesis scripts to work.
k3s is a lightweight Kubernetes distribution that simplifies the deployment and management of Kubernetes clusters. Install k3s with the following command:
curl -sfL https://get.k3s.io | sh - --docker
After installing k3s, modify your kubeconfig to use the k3s Kubernetes configuration with the following commands:
export KUBECONFIG=~/.kube/config
mkdir ~/.kube 2> /dev/null
sudo k3s kubectl config view --raw > "$KUBECONFIG"
chmod 600 "$KUBECONFIG"
Install Helm
Follow the Helm installation guide for your specific operating system: Installing Helm.
The installation instructions for Debian are replicated here:
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/null
sudo apt-get install apt-transport-https --yes
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list
sudo apt-get update
sudo apt-get install helm
Install Dependencies
Install the Elastic operator with the following Helm command to manage Elasticsearch in the default
namespace:
helm install elastic-operator eck-operator --repo https://helm.elastic.co --namespace elastic-system --create-namespace --set managedNamespaces='{default}'
Validate Installation
To ensure you're ready for the next step, run the command below and ensure a deployment exists for "traefik" and "elastic-operator."
$ helm ls -A
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
elastic-operator elastic-system 1 2024-04-22 10:42:02.9517585 -0400 EDT deployed eck-operator-2.12.1 2.12.1
traefik kube-system 1 2024-04-19 17:56:18.401408836 +0000 UTC deployed traefik-25.0.2+up25.0.0 v2.10.5
traefik-crd kube-system 1 2024-04-19 17:56:17.382691893 +0000 UTC deployed traefik-crd-25.0.2+up25.0.0 v2.10.5