From a5454c101f1e4d71dfe025809a3a3be33c5daaf9 Mon Sep 17 00:00:00 2001 From: Suraj Shirvankar Date: Fri, 16 Aug 2024 09:46:56 +0200 Subject: [PATCH] refactor: split docker compose into server | dpu files Signed-off-by: Suraj Shirvankar --- docker-compose.dpu.yml | 93 ++++++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 90 ++-------------------------------------- 2 files changed, 96 insertions(+), 87 deletions(-) create mode 100644 docker-compose.dpu.yml diff --git a/docker-compose.dpu.yml b/docker-compose.dpu.yml new file mode 100644 index 0000000..28c9600 --- /dev/null +++ b/docker-compose.dpu.yml @@ -0,0 +1,93 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright (c) 2022-2023 Dell Inc, or its subsidiaries. +--- +version: '3.7' + +services: + nmap: + image: docker.io/instrumentisto/nmap:7.94 + networks: + - opi + command: --script broadcast-dhcp-discover + + nmapmdnsclient: + image: docker.io/instrumentisto/nmap:7.94 + networks: + - opi + command: --script=dns-service-discovery -p 5353 avahi + + client: + image: docker.io/modularitycontainers/dhcp-client:latest + cap_add: + - CAP_NET_RAW + volumes: + - dhcp-leases-folder:/var/lib/dhclient/ + - ./dhcp/dhclient.conf:/etc/dhcp/dhclient.conf + networks: + - opi + command: dhclient -d -v + + agent3: &agent + image: ghcr.io/opiproject/opi-sztp-client:main + build: + context: sztp-agent + depends_on: + bootstrap: + condition: service_healthy + redirecter: + condition: service_healthy + setup-cert: + condition: service_completed_successfully + volumes: + - client-certs:/certs + - dhcp-leases-folder:/var/lib/dhclient/ + - /etc/os-release:/etc/os-release + - /etc/ssh:/etc/ssh + networks: + - opi + command: ['/opi-sztp-agent', 'daemon', + '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', + '--bootstrap-trust-anchor-cert', '/certs/opi.pem', + '--device-end-entity-cert', '/certs/third_my_cert.pem', + '--device-private-key', '/certs/third_private_key.pem', + '--serial-number', 'third-serial-number'] + + agent2: + <<: *agent + command: ['/opi-sztp-agent', 'daemon', + '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', + '--bootstrap-trust-anchor-cert', '/certs/opi.pem', + '--device-end-entity-cert', '/certs/second_my_cert.pem', + '--device-private-key', '/certs/second_private_key.pem', + '--serial-number', 'second-serial-number'] + + agent1: + <<: *agent + command: ['/opi-sztp-agent', 'daemon', + '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', + '--bootstrap-trust-anchor-cert', '/certs/opi.pem', + '--device-end-entity-cert', '/certs/first_my_cert.pem', + '--device-private-key', '/certs/first_private_key.pem', + '--serial-number', 'first-serial-number'] + + agent4: + <<: *agent + command: ['/opi-sztp-agent', 'daemon', + '--bootstrap-url', 'https://redirecter:8080/restconf/operations/ietf-sztp-bootstrap-server:get-bootstrapping-data', + '--bootstrap-trust-anchor-cert', '/certs/opi.pem', + '--device-end-entity-cert', '/certs/first_my_cert.pem', + '--device-private-key', '/certs/first_private_key.pem', + '--serial-number', 'first-serial-number'] + + agent5: + <<: *agent + command: ['/opi-sztp-agent', 'run', + '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', + '--bootstrap-trust-anchor-cert', '/certs/opi.pem', + '--device-end-entity-cert', '/certs/first_my_cert.pem', + '--device-private-key', '/certs/first_private_key.pem', + '--serial-number', 'first-serial-number'] + +volumes: + client-certs: + dhcp-leases-folder: diff --git a/docker-compose.yml b/docker-compose.yml index 6fe2514..08d9764 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -3,8 +3,10 @@ --- version: '3.7' -services: +include: + - docker-compose.dpu.yml +services: bootstrap: image: docker.io/opiproject/sztpd:0.0.15 depends_on: @@ -80,18 +82,6 @@ services: - opi command: sh -e -u -x -c 'touch /var/lib/dhcp/dhcpd.leases && eval "echo \"$$(cat /opt/dhcpd.conf.template)\"" > /etc/dhcp/dhcpd.conf && dhcpd -d' - nmap: - image: docker.io/instrumentisto/nmap:7.94 - networks: - - opi - command: --script broadcast-dhcp-discover - - nmapmdnsclient: - image: docker.io/instrumentisto/nmap:7.94 - networks: - - opi - command: --script=dns-service-discovery -p 5353 avahi - setup-cert: image: docker.io/alpine/openssl:3.3.1 volumes: @@ -171,79 +161,6 @@ services: cp /certs/ta_cert_chain.pem /usr/local/apache2/conf/ssl.crt/ca-bundle.crt httpd-foreground ' - - client: - image: docker.io/modularitycontainers/dhcp-client:latest - cap_add: - - CAP_NET_RAW - volumes: - - dhcp-leases-folder:/var/lib/dhclient/ - - ./dhcp/dhclient.conf:/etc/dhcp/dhclient.conf - networks: - - opi - command: dhclient -d -v - - agent3: &agent - image: ghcr.io/opiproject/opi-sztp-client:main - build: - context: sztp-agent - depends_on: - bootstrap: - condition: service_healthy - redirecter: - condition: service_healthy - setup-cert: - condition: service_completed_successfully - volumes: - - client-certs:/certs - - dhcp-leases-folder:/var/lib/dhclient/ - - /etc/os-release:/etc/os-release - - /etc/ssh:/etc/ssh - networks: - - opi - command: ['/opi-sztp-agent', 'daemon', - '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', - '--bootstrap-trust-anchor-cert', '/certs/opi.pem', - '--device-end-entity-cert', '/certs/third_my_cert.pem', - '--device-private-key', '/certs/third_private_key.pem', - '--serial-number', 'third-serial-number'] - - agent2: - <<: *agent - command: ['/opi-sztp-agent', 'daemon', - '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', - '--bootstrap-trust-anchor-cert', '/certs/opi.pem', - '--device-end-entity-cert', '/certs/second_my_cert.pem', - '--device-private-key', '/certs/second_private_key.pem', - '--serial-number', 'second-serial-number'] - - agent1: - <<: *agent - command: ['/opi-sztp-agent', 'daemon', - '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', - '--bootstrap-trust-anchor-cert', '/certs/opi.pem', - '--device-end-entity-cert', '/certs/first_my_cert.pem', - '--device-private-key', '/certs/first_private_key.pem', - '--serial-number', 'first-serial-number'] - - agent4: - <<: *agent - command: ['/opi-sztp-agent', 'daemon', - '--bootstrap-url', 'https://redirecter:8080/restconf/operations/ietf-sztp-bootstrap-server:get-bootstrapping-data', - '--bootstrap-trust-anchor-cert', '/certs/opi.pem', - '--device-end-entity-cert', '/certs/first_my_cert.pem', - '--device-private-key', '/certs/first_private_key.pem', - '--serial-number', 'first-serial-number'] - - agent5: - <<: *agent - command: ['/opi-sztp-agent', 'run', - '--dhcp-lease-file', '/var/lib/dhclient/dhclient.leases', - '--bootstrap-trust-anchor-cert', '/certs/opi.pem', - '--device-end-entity-cert', '/certs/first_my_cert.pem', - '--device-private-key', '/certs/first_private_key.pem', - '--serial-number', 'first-serial-number'] - avahi: image: docker.io/flungo/avahi:latest environment: @@ -282,7 +199,6 @@ volumes: tpm-data: server-certs: client-certs: - dhcp-leases-folder: networks: opi: