Skip to content
Snippets Groups Projects
Commit 3e39c7bf authored by André Sterba's avatar André Sterba
Browse files

Merge branch 'istaester/init-monorepo' of code.fbi.h-da.de:danet/gosdn into istaester/init-monorepo

parents 1aa82afe 290fdfd7
No related branches found
No related tags found
1 merge request!253Migration in monorepo
This commit is part of merge request !253. Comments created here will be created in the context of that merge request.
.build: &build
stage: build
image:
name: gcr.io/kaniko-project/executor:debug
entrypoint: [""]
tags:
- shell-builder
variables:
TAG: $CI_COMMIT_BRANCH
TAG: $CI_COMMIT_SHA
before_script:
# replace all slashes in the tag with hyphen, because slashes are not allowed in tags
- cd controller/
- TAG=${TAG//\//-}
- mkdir -p /kaniko/.docker
- echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"},\"$CI_DEPENDENCY_PROXY_SERVER\":{\"username\":\"$CI_DEPENDENCY_PROXY_USER\",\"password\":\"$CI_DEPENDENCY_PROXY_TOKEN\"}}}" > /kaniko/.docker/config.json
needs: []
build-testing-image:
......@@ -24,15 +20,9 @@ build-testing-image:
BUILDARGS: -race
- when: always
script:
- /kaniko/executor
--cache=true
--context "$CI_PROJECT_DIR"
--dockerfile "Dockerfile"
--build-arg "GOLANG_VERSION=$GOLANG_VERSION"
--build-arg "BUILDARGS=$BUILDARGS"
--build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/"
--destination "$GOSDN_TESTING_IMAGE"
--target "installer"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t "$GOSDN_TESTING_IMAGE" -f "${CI_PROJECT_DIR}/controller/Dockerfile" --target "installer" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" .
- docker push "$GOSDN_TESTING_IMAGE"
<<: *build
build-image:
......@@ -48,13 +38,7 @@ build-image:
BUILDARGS: -race
- when: always
script:
- /kaniko/executor
--cache=true
--context "$CI_PROJECT_DIR"
--dockerfile "Dockerfile"
--build-arg "GOLANG_VERSION=$GOLANG_VERSION"
--build-arg "BUILDARGS=$BUILDARGS"
--build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/"
--destination "$GOSDN_IMAGE"
--destination "$CI_REGISTRY_IMAGE:$TAG"
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t "$CI_REGISTRY_IMAGE:$TAG" -f "${CI_PROJECT_DIR}/controller/Dockerfile" --target "installer" --build-arg "GOLANG_VERSION=$GOLANG_VERSION" --build-arg "BUILDARGS=$BUILDARGS" --build-arg "GITLAB_PROXY=${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/" .
- docker push "$CI_REGISTRY_IMAGE:$TAG"
<<: *build
......@@ -48,7 +48,7 @@ variables:
containerlab:template:integration:
extends: .containerlab_template
variables:
CLAB_TEMPLATE: "${CI_PROJECT_DIR}/test/containerlab/int01.clab.tmpl.yml"
CLAB_TEMPLATE: "${CI_PROJECT_DIR}/controller/test/containerlab/int01.clab.tmpl.yml"
containerlab:deploy:integration:
extends: .containerlab_deploy
......
......@@ -15,6 +15,7 @@
unit-test:
script:
- cd controller
- make ci-unit-test
after_script:
- go tool cover -func=coverage.out
......@@ -22,6 +23,7 @@ unit-test:
controller-test:
script:
- cd controller
- make ci-controller-test
<<: *test
......@@ -29,5 +31,5 @@ test-build:
artifacts:
when: never
script:
- GOOS=linux go build $BUILDARGS ./cmd/gosdn
- make build
<<: *test
......@@ -28,9 +28,11 @@ ci-install-tools:
build: pre
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/gosdn ./controller/cmd/gosdn
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/gosdnc ./cli/
CGO_ENABLED=0 $(GOBUILD) -o $(BUILD_ARTIFACTS_PATH)/orchestrator ./csbi/cmd/csbi/
container: build
docker build -t gosdn -f controller/Dockerfile .
docker build -t orchestrator -f csbi/Dockerfile .
clean:
$(GOCLEAN)
......
FROM scratch
ARG GOLANG_VERSION=1.18
ARG BUILDARGS
ARG $GITLAB_PROXY
FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-buster AS installer
WORKDIR /src/gosdn/controller
COPY go.* ./
RUN go mod download
FROM installer as builder
COPY ./controller ./
RUN make build
FROM scratch as gosdn
COPY artifacts/gosdn /
......
# syntax = docker/dockerfile:1.2
ARG GOLANG_VERSION=1.18
ARG BUILDARGS
ARG $GITLAB_PROXY
FROM golang:1.18-alpine AS installer
WORKDIR /build
RUN apk add --no-cache git make build-base
RUN apk add --update --no-cache alpine-sdk
COPY go.mod .
COPY go.sum .
FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-buster AS installer
WORKDIR /src/gosdn/controller
COPY go.* ./
RUN go mod download
FROM installer as builder
COPY . .
RUN --mount=type=cache,target=/root/.cache/go-build \
GOOS=linux go build -o orchestrator ./cmd/csbi/main.go
FROM golang:1.18-alpine
RUN apk add --no-cache git make build-base
RUN apk add --update --no-cache alpine-sdk
COPY --from=builder /build/orchestrator .
COPY --from=builder /build/models ./models
COPY --from=builder /build/resources ./resources
COPY ./csbi ./
RUN make build
FROM scratch
COPY --from=builder artifacts/orchestrator .
COPY --from=builder csbi/models ./models
COPY --from=builder csbi/resources ./resources
EXPOSE 55056
ENTRYPOINT [ "./orchestrator" ]
ENTRYPOINT [ "/orchestrator" ]
CMD [""]
name: gosdn_csbi_arista_base
mgmt:
network: csbi_csbi-dev-net
topology:
kinds:
ceos:
image: registry.code.fbi.h-da.de/danet/gosdn/ceos:latest
nodes:
ceos0:
kind: ceos
ceos1a:
kind: ceos
gosdn:
kind: linux
image: gosdn-base
ports:
- "55055:55055"
- "8080:8080"
- "40000:40000"
cmd: ["--csbi-orchestrator", "orchestrator:55056"]
gnmi-target:
kind: linux
image: gnmi-target-base
ports:
- "7030:7030"
csbi-orchestrator:
kind: linux
image: csbi-orchestrator-base
ports:
- 55056:55056
- 9338:9338
binds:
- "/var/run/docker.sock:/var/run/docker.sock"
- ./.csbi.yml:/etc/.csbi.yml
cmd: ["--log-level", "trace", "--config", "/etc/.csbi.yml"]
grafana:
kind: linux
image: grafana/grafana:8.1.2
restart: unless-stopped
binds:
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
- grafana-data:/var/lib/grafana
prometheus:
kind: linux
image: prom/prometheus:v2.29.1
ports:
- 9000:9090
binds:
- ./prometheus:/etc/prometheus
- prometheus-data:/prometheus
cmd: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml
links:
- endpoints: ["ceos0:eth1", "ceos1a:eth1"]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment