# to run define K3S_TOKEN, K3S_VERSION is optional, eg:
#   K3S_TOKEN=${RANDOM}${RANDOM}${RANDOM} docker-compose up

version: '3'
services:
  server:
    image: "rancher/k3s:${K3S_VERSION:-latest}"
    command: server
    tmpfs:
    - /run
    - /var/run
    privileged: true
    restart: unless-stopped
    environment:
    - K3S_TOKEN=${K3S_TOKEN:-01DXAEQ4FP5P8JJ9W6VWDPVH2V2a04d254-27a3-4d7e-9599-a0f41a800f4d}
    - K3S_KUBECONFIG_OUTPUT=/output/kubeconfig.yaml
    - K3S_KUBECONFIG_MODE=666
    volumes:
    - k3s-server:/var/lib/rancher/k3s
    # This is just so that we get the kubeconfig file out
    - .:/output
    ports:
    - 6443:6443

  agent:
    image: "rancher/k3s:${K3S_VERSION:-latest}"
    tmpfs:
    - /run
    - /var/run
    privileged: true
    restart: unless-stopped
    environment:
    - K3S_URL=https://server:6443
    - K3S_TOKEN=${K3S_TOKEN:-01DXAEQ4FP5P8JJ9W6VWDPVH2V2a04d254-27a3-4d7e-9599-a0f41a800f4d}

volumes:
  k3s-server: {}
