version: '3.7'

services:
  dnsmasq:
    container_name: dnsmasq
    image: quay.io/poseidon/dnsmasq:latest
    command: ['-d']
    networks:
      talos:
        ipv4_address: 172.28.1.1
    volumes:
      - ./dnsmasq/talos0.conf:/etc/dnsmasq.conf:Z
      - ./dnsmasq/tftpboot:/var/lib/tftpboot
    cap_add:
      - NET_ADMIN
    restart: always

  matchbox:
    container_name: matchbox
    image: quay.io/poseidon/matchbox:latest
    command: ['-address=0.0.0.0:8080', '-log-level=debug']
    networks:
      talos:
        ipv4_address: 172.28.1.2
    ports:
      - '8080:8080'
    volumes:
      - ./matchbox:/var/lib/matchbox:Z
    restart: always

  haproxy:
    container_name: haproxy
    image: haproxy:1.9.12-alpine
    networks:
      talos:
        ipv4_address: 172.28.1.3
    ports:
      - '6443:6443'
    volumes:
      - ./haproxy:/usr/local/etc/haproxy:ro
    restart: always

networks:
  talos:
    name: talos
    driver: bridge
    driver_opts:
      com.docker.network.bridge.name: talos0
    ipam:
      driver: default
      config:
        - subnet: 172.28.0.0/16
