brew install docker-desktop
brew install kubectl
brew install helm
brew install helmfile
brew install python
brew install node
# Docker Desktop
wget https://desktop.docker.com/linux/main/amd64/docker-desktop-4.32.0-amd64.deb
sudo apt install ./docker-desktop-4.32.0-amd64.deb
# kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# helmfile
wget -O- -q https://github.com/helmfile/helmfile/releases/download/v0.168.0/helmfile_0.168.0_linux_amd64.tar.gz | tar xz
sudo mv helmfile /usr/local/bin/
# Python, Node.js
sudo apt install python3 python3-pip nodejs npm
# Docker Desktop
winget install Docker.DockerDesktop
# kubectl
winget install Kubernetes.kubectl
# Helm
winget install Kubernetes.Helm
# helmfile
winget install helmfile
# Python
winget install Python.Python.3.12
# Node.js
winget install OpenJS.NodeJS
# Install kind
go install sigs.k8s.io/kind@v0.24.0
kind create cluster --name opendesk-edu
# Install minikube
winget install Kubernetes.minikube
minikube start
kubectl config use-context docker-desktop# Copy environment template
cp helmfile/environments/default/global.yaml.gotmpl \
helmfile/environments/default/global.yaml
# Edit configuration for local testing
nano helmfile/environments/default/global.yaml
# Download chart dependencies
cd helmfile
helmfile deps
# Run all tests (lint + template + unit tests)
make test
# Run individual tests
make lint # Helm linting
make template # Template validation
make yamllint # YAML linting
make spellcheck # Documentation spellcheck
# Dry-run to see what would be deployed
helmfile -e default apply --diff
# Deploy to local cluster
helmfile -e default apply
# Check deployment status
kubectl get pods -A
kubectl get svc -A
# Port-forward to a service (example)
kubectl port-forward svc/keycloak 8080:8080 -n keycloak
# Get ingress URLs (if configured)
kubectl get ingress -A
# Verify helmfile syntax
helmfile -e default template
# Debug helmfile with verbose output
helmfile -e default apply --debug
# Check cluster status
kubectl cluster-info
kubectl get nodes
# View pod logs
kubectl logs -f <pod-name> -n <namespace>
# Descriptions
kubectl describe pod <pod-name> -n <namespace>
# Increase Docker Desktop resource allocation
# Settings > Resources > CPUs/Memory
# Check pod resource usage
kubectl top pods -A
The scripts/ directory contains utility scripts:
scripts/user_import/ - User provisioning toolingscripts/maintenance/ - Backup/restore operations