From f719adfa8970d2e530b0303889d2bbee7cf859db Mon Sep 17 00:00:00 2001 From: Maros Ondrejicka Date: Tue, 20 Dec 2022 15:10:50 +0100 Subject: [PATCH] hs-test: use anchors in yaml config files Volumes can be referenced with anchors to reduce text duplication and to explicitly show which containers share a volume. Type: test Signed-off-by: Maros Ondrejicka Change-Id: Id408a78262573b3faf2257c32bfa569eca2e2049 --- extras/hs-test/framework_test.go | 4 +++- extras/hs-test/go.mod | 2 +- extras/hs-test/go.sum | 2 ++ extras/hs-test/topo-containers/2peerVeth.yaml | 14 ++++++++------ extras/hs-test/topo-containers/ns.yaml | 7 ++++--- extras/hs-test/topo-containers/single.yaml | 9 +++++---- extras/hs-test/topo.go | 3 ++- 7 files changed, 25 insertions(+), 16 deletions(-) diff --git a/extras/hs-test/framework_test.go b/extras/hs-test/framework_test.go index 056be13d597..76d8e58724f 100644 --- a/extras/hs-test/framework_test.go +++ b/extras/hs-test/framework_test.go @@ -131,7 +131,9 @@ func (s *HstSuite) loadContainerTopology(topologyName string) { } for _, elem := range yamlTopo.Volumes { - s.volumes = append(s.volumes, elem) + volumeMap := elem["volume"].(VolumeConfig) + hostDir := volumeMap["host-dir"].(string) + s.volumes = append(s.volumes, hostDir) } s.containers = make(map[string]*Container) diff --git a/extras/hs-test/go.mod b/extras/hs-test/go.mod index 0674b587925..3b11dd2609a 100644 --- a/extras/hs-test/go.mod +++ b/extras/hs-test/go.mod @@ -8,7 +8,7 @@ require ( github.com/edwarnicke/govpp v0.0.0-20220311182453-f32f292e0e91 github.com/edwarnicke/vpphelper v0.0.0-20210617172001-3e6797de32c3 github.com/stretchr/testify v1.7.0 - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b + gopkg.in/yaml.v3 v3.0.1 ) require ( diff --git a/extras/hs-test/go.sum b/extras/hs-test/go.sum index 13cd56c20b0..e08a0d5043d 100644 --- a/extras/hs-test/go.sum +++ b/extras/hs-test/go.sum @@ -141,3 +141,5 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/extras/hs-test/topo-containers/2peerVeth.yaml b/extras/hs-test/topo-containers/2peerVeth.yaml index 8262232eff8..246e5cac1bd 100644 --- a/extras/hs-test/topo-containers/2peerVeth.yaml +++ b/extras/hs-test/topo-containers/2peerVeth.yaml @@ -1,31 +1,33 @@ --- volumes: - - server-share - - client-share + - volume: &server-vol + host-dir: server-share + - volume: &client-vol + host-dir: client-share containers: - name: "server-vpp" volumes: - - host-dir: "server-share" + - <<: *server-vol container-dir: "/tmp/server-share" is-default-work-dir: true - host-dir: "/tmp/server" container-dir: "/tmp/server" - name: "client-vpp" volumes: - - host-dir: "client-share" + - <<: *client-vol container-dir: "/tmp/client-share" is-default-work-dir: true - host-dir: "/tmp/client" container-dir: "/tmp/client" - name: "server-application" volumes: - - host-dir: "server-share" + - <<: *server-vol container-dir: "/tmp/server-share" is-default-work-dir: true - name: "client-application" volumes: - - host-dir: "client-share" + - <<: *client-vol container-dir: "/tmp/client-share" is-default-work-dir: true diff --git a/extras/hs-test/topo-containers/ns.yaml b/extras/hs-test/topo-containers/ns.yaml index 2cb4fdc80f4..bdba5605e87 100644 --- a/extras/hs-test/topo-containers/ns.yaml +++ b/extras/hs-test/topo-containers/ns.yaml @@ -1,19 +1,20 @@ --- volumes: - - shared-vol + - volume: &shared-vol + host-dir: shared-vol # $HST_DIR will be replaced during runtime by path to hs-test directory containers: - name: "vpp" volumes: - - host-dir: "shared-vol" + - <<: *shared-vol container-dir: "/tmp/vpp" is-default-work-dir: true - name: "envoy" volumes: - host-dir: "$HST_DIR/envoy/proxy.yaml" container-dir: "/etc/envoy/envoy.yaml" - - host-dir: "shared-vol" + - <<: *shared-vol container-dir: "/tmp/vpp-envoy" is-default-work-dir: true - host-dir: "$HST_DIR/envoy" diff --git a/extras/hs-test/topo-containers/single.yaml b/extras/hs-test/topo-containers/single.yaml index e0fea70d50d..9ecdc904d4d 100644 --- a/extras/hs-test/topo-containers/single.yaml +++ b/extras/hs-test/topo-containers/single.yaml @@ -1,17 +1,18 @@ --- volumes: - - shared-vol + - volume: &shared-vol + host-dir: shared-vol containers: - name: "vpp" volumes: - - host-dir: "shared-vol" + - <<: *shared-vol container-dir: "/tmp/vpp" is-default-work-dir: true - name: "nginx" volumes: - - host-dir: "shared-vol" + - <<: *shared-vol container-dir: "/tmp/nginx" is-default-work-dir: true image: "hs-test/nginx-ldp" - is-optional: true \ No newline at end of file + is-optional: true diff --git a/extras/hs-test/topo.go b/extras/hs-test/topo.go index cf50dadd42a..b7e883bd773 100644 --- a/extras/hs-test/topo.go +++ b/extras/hs-test/topo.go @@ -11,11 +11,12 @@ import ( type NetDevConfig map[string]interface{} type ContainerConfig map[string]interface{} +type VolumeConfig map[string]interface{} type YamlTopology struct { Devices []NetDevConfig `yaml:"devices"` Containers []ContainerConfig `yaml:"containers"` - Volumes []string `yaml:"volumes"` + Volumes []VolumeConfig `yaml:"volumes"` } func AddAddress(device, address, ns string) error { -- 2.16.6