# topology documentation: http://containerlab.dev/lab-examples/single-srl/
name: sshworkshop
topology:
  kinds:
    nokia_srlinux:
      type: ixrd3
      image: ghcr.io/nokia/srlinux
    arista_ceos:
      image: ceos-lab:4.32.0.1F
    linux:
      image: workshop-debian:v1
      network-mode: none
      binds:
        - ./names-hashes.yml:/etc/workshopnames.yml:ro
        - ./config/authorized_keys:/root/.ssh/authorized_keys:ro
        - ./setups/linux.sh:/usr/local/bin/setup.sh:ro
      memory: 256MB
      cpu-set: 4-7
  nodes:
    # a1:
    #   kind: arista_ceos
    br-clab-intonly:
      kind: bridge
    br-ext:
      kind: bridge
    linux-gw:
      kind: linux
      # network-mode: "bridge"
      binds:
        - ./config/dnsmasq.conf:/etc/dnsmasq.conf:ro
        - ./setups/gateway.sh:/usr/local/bin/setup.sh:ro
        - ./names-hashes.yml:/etc/workshopnames.yml:ro
    jumphost1:
      kind: linux
      binds:
        - ./setups/jumphost.sh:/usr/local/bin/setup.sh:ro
        - ./names-hashes.yml:/etc/workshopnames.yml:ro
      memory: 4GB
      cpu-set: 2-3
    jumphost2:
      kind: linux
      binds:
        - ./setups/jumphost.sh:/usr/local/bin/setup.sh:ro
      memory: 1GB
    webserver1:
      kind: linux
      # network-mode: "bridge"
      binds:
        - ./namepicker/webserver.py:/usr/local/bin/webserver.py:ro
        - ./setups/webserver.sh:/usr/local/bin/setup.sh:ro
      memory: 1GB
    webserver2:
      kind: linux
      # network-mode: "bridge"
      binds:
        - ./namepicker/webserver.py:/usr/local/bin/webserver.py:ro
        - ./setups/webserver.sh:/usr/local/bin/setup.sh:ro
      memory: 1GB
    linux1:
      kind: linux
    linux2:
      kind: linux
    linux3:
      kind: linux
    linux4:
      kind: linux
    linux5:
      kind: linux
    linux6:
      kind: linux

  links:
    # - endpoints: ["a1:eth1","br-clab:eth1"]
    - endpoints: [ "linux-gw:eth1", "br-ext:gw1" ]
    - endpoints: [ "linux-gw:eth2", "br-clab-intonly:gw2" ]
    - endpoints: [ "linux-gw:eth3", "jumphost1:eth0" ]
    - endpoints: [ "jumphost1:eth1", "webserver1:eth1" ]
    - endpoints: [ "jumphost1:eth2", "jumphost2:eth0" ]
    - endpoints: [ "jumphost2:eth1", "webserver2:eth1" ]
    - endpoints: [ "linux1:eth0", "br-clab-intonly:l1" ]
    - endpoints: [ "linux2:eth0", "br-clab-intonly:l2" ]
    - endpoints: [ "linux3:eth0", "br-clab-intonly:l3" ]
    - endpoints: [ "linux4:eth0", "br-clab-intonly:l4" ]
    - endpoints: [ "linux5:eth0", "br-clab-intonly:l5" ]
    - endpoints: [ "linux6:eth0", "br-clab-intonly:l6" ]
