This repository contains a Makefile to quickly bootstrap a local Kubernetes development environment using Kind, complete with Ingress NGINX and Argo CD for GitOps workflows.
Before you begin, ensure you have the following installed on your macOS system:
- Clone this repository
- Install required tools:
make tooling - Start the Kubernetes cluster:
make cluster/up - Set up Ingress NGINX:
make ingress - Install Argo CD:
make argo - Get the Argo CD admin password:
make argo/password
Note
Each make target does not wait for components to become ready. Please allow
each step to complete before proceeding to the next. You can use the
make status/<component> commands (detailed below) to check readiness.
This setup creates:
- A Kind-based Kubernetes cluster configured for local development.
- Ingress NGINX controller for routing external traffic.
- Argo CD for GitOps-based deployments.
Once set up, Argo CD will be available at http://argo.local
Ensure that argo.local resolves to 127.0.0.1 in your hosts (/etc/hosts) file.
make tooling: Install required tools via Homebrew (kind, kubectl, argocd).
make cluster/up: Create the Kind cluster.make cluster/down: Delete the Kind cluster.
make ingress: Install Ingress NGINX controller.make argo: Install Argo CD.make argo/password: Retrieve the initial Argo CD admin password.
make status/all: Show status of all components.make status/nodes: Show status of cluster nodes.make status/ingress: Show status of Ingress NGINX.make status/argo: Show status of Argo CD components.
The environment uses the following configuration files, update them as required:
kind-config.yaml: Kind cluster configuration.manifests/argocd-ingress.yaml: Ingress configuration for Argo CD.manifests/argocd-cmd-params-cm.yaml: Command parameters for Argo CD.
Further configuration can be achieved by updating the top-level variables inside
the Makefile.
This project is licensed under the MIT License - see the LICENSE file for details.