From 7171a1a9be6d062ab3b0deb939ba1cc506dc4e54 Mon Sep 17 00:00:00 2001 From: Manuel Kieweg <mail@manuelkieweg.de> Date: Thu, 4 Mar 2021 15:56:07 +0000 Subject: [PATCH] terraform ready for itegration test --- build/ci/.build-container.yml | 2 +- build/ci/.terraform-ci.yml | 4 ++++ build/ci/.test.yml | 4 +++- nucleus/controller.go | 5 +++-- test/terraform/containers.tf | 23 +++++++++++++++++++++-- test/terraform/images.tf | 2 +- test/terraform/networks.tf | 11 +++++++++-- test/terraform/variables.tf | 5 +++++ 8 files changed, 47 insertions(+), 9 deletions(-) diff --git a/build/ci/.build-container.yml b/build/ci/.build-container.yml index 3d1d3576d..dde9dc0d7 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 345e5297d..ca0547efd 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 587bc1d39..edab2169d 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 38b2eeef1..7a18b975d 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 6b74c277d..1dd5e3dc4 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 18a13d113..39d234b38 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 652eb419a..614d086e3 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 172c8a46c..09277aab4 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 -- GitLab