Kubernetes with Argo CD as a container. Can be used to test infrastructure code locally.
git clone https://github.com/argoproj/argocd-example-apps.git applications/example/
wget -qO- https://github.com/nedix/k3d-argocd-docker/archive/refs/heads/main.zip | tar xzOf - k3d-argocd-docker-main/applications.yaml.example > applications.yaml
docker volume create k8sage
docker run --rm --pull always -d --name k8sage \
-v k8sage:/mnt/docker \
-v ${PWD}/applications:/mnt/applications \
--mount "type=bind,source=${PWD}/applications.yaml,target=/mnt/config/applications.yaml" \
-p 443:443 \
-p 6445:6445 \
--privileged \
ghcr.io/nedix/k3d-argocd-docker
Mount a named volume for Docker in Docker cache
docker volume create k8sage
Flags:
-v k8sage:/mnt/docker
Mount your application repository on /mnt/applications
git clone https://github.com/argoproj/argocd-example-apps.git applications/example/
Flags:
-v ${PWD}/applications:/mnt/applications
Mount applications.yaml
configuration file on /mnt/config/applications.yaml
wget -qO- https://github.com/nedix/k3d-argocd-docker/archive/refs/heads/main.zip | tar xzOf - k3d-argocd-docker-main/applications.yaml.example > applications.yaml
Flags:
--mount "type=bind,source=${PWD}/applications.yaml,target=/mnt/config/applications.yaml"
Forward network ports
Flags:
-p 443:443
-p 6445:6445
Give privileges for Docker in Docker
Flags:
--privileged
Login: admin:admin
Copy Kubernetes config to your host
docker cp k8sage:/etc/k8sage/cluster-config/kube/config.yaml ${PWD}/kubeconfig.yaml
Replace key clusters.0.cluster.certificate-authority-data
insecure-skip-tls-verify: true