diff --git a/build/ci/.build-container.yml b/build/ci/.build-container.yml index 3d1d3576d46f53cc9e1ff6d1dc2a4b1754b19374..dde9dc0d7a6465d46eeab5ee265e7de945166de8 100644 --- a/build/ci/.build-container.yml +++ b/build/ci/.build-container.yml @@ -14,7 +14,7 @@ build:docker: docker build \ --build-arg GITLAB_USER=$GO_MODULES_USER \ --build-arg GITLAB_TOKEN=$GO_MODULES_ACCESS_TOKEN \ - -t $DOCKER_IMAGE_SHA . + -t $DOCKER_IMAGE_SHA build/docker/gosdn .deploy: &deploy stage: deploy diff --git a/build/ci/.terraform-ci.yml b/build/ci/.terraform-ci.yml index 345e5297d8b6025fb01b2568cd47d379057e57c9..ca0547efdf6d0ebfdc89bd6a1836ab22a23c29ce 100644 --- a/build/ci/.terraform-ci.yml +++ b/build/ci/.terraform-ci.yml @@ -22,7 +22,11 @@ cache: - export TF_VAR_tls_ca_cert=${DOCKER_TLS_CA} rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH + variables: + TF_VAR_container_tag: $CI_REGISTRY_IMAGE:mr-master - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'develop' + variables: + TF_VAR_container_tag: $CI_REGISTRY_IMAGE:mr-develop - if: $CI_COMMIT_BRANCH == "integration-test" - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH diff --git a/build/ci/.test.yml b/build/ci/.test.yml index 587bc1d392f53e238b2d5135a40c400d773bbe46..edab2169dae858100e7349a3341f09f9d369549e 100644 --- a/build/ci/.test.yml +++ b/build/ci/.test.yml @@ -1,9 +1,11 @@ integration-test: image: golang:1.14 - stage: test + stage: integration-test rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH + - if: $CI_COMMIT_BRANCH == "integration-test" + allow_failure: true script: - go test -race $(go list ./... | grep -v /forks/ | grep -v /api/ | grep -v /mocks ) -v -coverprofile=coverage.out after_script: diff --git a/nucleus/controller.go b/nucleus/controller.go index 38b2eeef162d337565bc01d498f3ea82c5cde0d7..7a18b975d7b2d377a47dcc7ddfa7bd4b6d487356 100644 --- a/nucleus/controller.go +++ b/nucleus/controller.go @@ -1,6 +1,7 @@ package nucleus import ( + "github.com/google/uuid" "os" "code.fbi.h-da.de/cocsn/gosdn/database" @@ -56,10 +57,10 @@ func (c *Core) AttachDatabase() { // CreateSouthboundInterfaces initializes the controller with its supported SBIs func (c *Core) CreateSouthboundInterfaces() error { - if err := c.sbic.add(&AristaOC{}); err != nil { + if err := c.sbic.add(&AristaOC{id: uuid.New()}); err != nil { return err } - if err := c.sbic.add(&OpenConfig{}); err != nil { + if err := c.sbic.add(&OpenConfig{id: uuid.New()}); err != nil { return err } return nil diff --git a/test/terraform/containers.tf b/test/terraform/containers.tf index 6b74c277d57a2765d4e7ec39e49ff55fac46f81a..1dd5e3dc40a62bbad44aeb263593157a2b1a5bc8 100644 --- a/test/terraform/containers.tf +++ b/test/terraform/containers.tf @@ -11,13 +11,18 @@ resource "docker_container" "gosdn" { } networks_advanced { - name = docker_network.danet.name + name = docker_network.danet.name + ipv4_address = "fd::605d" + } + + networks_advanced { + name = docker_network.danet_legacy.name ipv4_address = "172.100.100.10" } env = [ "GOSDN_DEBUG=", - "GOSDN_TEST="] + ] } # create arista container @@ -27,8 +32,22 @@ resource "docker_container" "ceos" { image = docker_image.ceos.name restart = "always" + ports { + internal = 6030 + external = 6030 + } + + networks_advanced { + name = "bridge" + } + networks_advanced { name = docker_network.danet.name + ipv4_address = "fd::ce05" + } + + networks_advanced { + name = docker_network.danet_legacy.name ipv4_address = "172.100.100.20" } diff --git a/test/terraform/images.tf b/test/terraform/images.tf index 18a13d113266743c884b8121bd3f31cd7482c37b..39d234b387f5b14a704a028b6b7f31f39a217218 100644 --- a/test/terraform/images.tf +++ b/test/terraform/images.tf @@ -1,5 +1,5 @@ resource "docker_image" "gosdn" { - name = "registry.code.fbi.h-da.de/cocsn/gosdn:develop" + name = var.container_tag } resource "docker_image" "ceos" { diff --git a/test/terraform/networks.tf b/test/terraform/networks.tf index 652eb419aab27e0bd041e19046d7f3e684d990eb..614d086e3d1a8f2ee5159fb536f0c00c2bb39484 100644 --- a/test/terraform/networks.tf +++ b/test/terraform/networks.tf @@ -1,8 +1,15 @@ -resource "docker_network" "danet" { - name = "danet" +resource "docker_network" "danet_legacy" { + name = "danet_legacy" ipam_config { subnet = "172.100.100.0/24" + } +} +resource "docker_network" "danet" { + name = "danet" + ipv6 = true + ipam_config { + subnet = "fd::/64" } } \ No newline at end of file diff --git a/test/terraform/variables.tf b/test/terraform/variables.tf index 172c8a46c7e7e11f05764dca303848354524b77c..09277aab4c338cefe92efc7cfa34530e12fea4cc 100644 --- a/test/terraform/variables.tf +++ b/test/terraform/variables.tf @@ -20,3 +20,8 @@ variable "tls_cert" { variable "tls_ca_cert" { type = string } + +variable "container_tag" { + type = string + default = "registry.code.fbi.h-da.de/cocsn/gosdn:latest" +} \ No newline at end of file