Skip to content
Snippets Groups Projects
Commit 04893c56 authored by Matthias Feyll's avatar Matthias Feyll
Browse files

add react ui to containerlab

parent c11b1bca
No related branches found
No related tags found
5 merge requests!1196[renovate] Update module golang.org/x/net to v0.32.0,!1195UI: implement add device functionality,!1167Ui refactor style,!1166Ui containerlab integration,!1161Ui refactor style
Pipeline #247164 failed
This commit is part of merge request !1161. Comments created here will be created in the context of that merge request.
...@@ -16,5 +16,6 @@ build-all-binaries: ...@@ -16,5 +16,6 @@ build-all-binaries:
- artifacts/venv-manager - artifacts/venv-manager
- artifacts/inventory-manager - artifacts/inventory-manager
- artifacts/plugin-registry - artifacts/plugin-registry
- artifacts/react-ui
expire_in: 1 week expire_in: 1 week
<<: *build-binaries <<: *build-binaries
...@@ -75,6 +75,16 @@ build-inventory-manager-image: ...@@ -75,6 +75,16 @@ build-inventory-manager-image:
- docker push "$INVENTORY_MANAGER_IMAGE_NAME:$CI_COMMIT_REF_SLUG" - docker push "$INVENTORY_MANAGER_IMAGE_NAME:$CI_COMMIT_REF_SLUG"
<<: *build <<: *build
build-react-ui-image:
script:
- REACT_UI_IMAGE_NAME="${CI_REGISTRY_IMAGE}/react-ui"
- docker buildx build -t "$REACT_UI_IMAGE_NAME:$CI_COMMIT_SHA" -f "${CI_PROJECT_DIR}/react-ui/docker/webserver/Dockerfile" ./react-ui
- docker push "$REACT_UI_IMAGE_NAME:$CI_COMMIT_SHA"
- docker tag "$REACT_UI_IMAGE_NAME:$CI_COMMIT_SHA" "$REACT_UI_IMAGE_NAME:$CI_COMMIT_REF_SLUG"
- docker push "$REACT_UI_IMAGE_NAME:$CI_COMMIT_REF_SLUG"
<<: *build
build-integration-test-images: build-integration-test-images:
needs: ["build-controller-image"] needs: ["build-controller-image"]
script: script:
......
build-react-ui:
stage: build
\ No newline at end of file
...@@ -60,7 +60,7 @@ lint-fix: install-tools ...@@ -60,7 +60,7 @@ lint-fix: install-tools
build: pre build-gosdn build-gosdnc build-plugin-registry build-venv-manager build-arista-routing-engine-app build-hostname-checker-app build-basic-interface-monitoring-app build-inventory-manager build: pre build-gosdn build-gosdnc build-plugin-registry build-venv-manager build-arista-routing-engine-app build-hostname-checker-app build-basic-interface-monitoring-app build-inventory-manager
containerize-all: containerize-gosdn containerize-gosdnc containerize-plugin-registry containerize-venv-manager containerize-arista-routing-engine-app containerize-inventory-manager containerize-all: containerize-gosdn containerize-gosdnc containerize-plugin-registry containerize-venv-manager containerize-arista-routing-engine-app containerize-inventory-manager containerize-react-ui
generate-all-certs: pre generate-root-ca generate-gosdn-certs generate-gnmi-target-certs generate-all-certs: pre generate-root-ca generate-gosdn-certs generate-gnmi-target-certs
......
...@@ -13,6 +13,13 @@ topology: ...@@ -13,6 +13,13 @@ topology:
image: plugin-registry image: plugin-registry
mgmt-ipv4: 172.100.0.16 mgmt-ipv4: 172.100.0.16
react-ui:
kind: linux
image: react-ui
ports:
- 127.0.0.1:8088:80
mgmt-ipv4: 172.100.0.6
gosdn: gosdn:
kind: linux kind: linux
image: gosdn image: gosdn
......
...@@ -75,5 +75,10 @@ services: ...@@ -75,5 +75,10 @@ services:
command: command:
start --cert /etc/gnmi-target/ssl/certs/gnmi-target-selfsigned.crt --key /etc/gnmi-target/ssl/private/gnmi-target-selfsigned.key --ca_file /etc/gnmi-target/ssl/ca.crt start --cert /etc/gnmi-target/ssl/certs/gnmi-target-selfsigned.crt --key /etc/gnmi-target/ssl/private/gnmi-target-selfsigned.key --ca_file /etc/gnmi-target/ssl/ca.crt
react-ui:
image: react-ui
ports:
- 127.0.0.1:8088:80
volumes: volumes:
mongo-db-basic: mongo-db-basic:
...@@ -25,3 +25,6 @@ containerize-ws-events-app: ...@@ -25,3 +25,6 @@ containerize-ws-events-app:
containerize-inventory-manager: containerize-inventory-manager:
docker buildx build --rm -t venv-manager --load -f applications/inventory-manager/inventory-manager.Dockerfile . docker buildx build --rm -t venv-manager --load -f applications/inventory-manager/inventory-manager.Dockerfile .
containerize-react-ui:
docker buildx build --rm --load -t react-ui -f react-ui/docker/webserver/Dockerfile .
...@@ -4,8 +4,9 @@ ARG GITLAB_PROXY ...@@ -4,8 +4,9 @@ ARG GITLAB_PROXY
FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-bookworm as builder FROM ${GITLAB_PROXY}golang:$GOLANG_VERSION-bookworm as builder
WORKDIR /plugin-registry/ WORKDIR /plugin-registry/
RUN apt-get update RUN apt-get update && \
RUN apt-get -y install --no-install-recommends zip apt-get -y install --no-install-recommends zip && \
rm -rf /var/lib/apt/lists/*
COPY . . COPY . .
RUN --mount=type=cache,target=/root/go/pkg/mod \ RUN --mount=type=cache,target=/root/go/pkg/mod \
--mount=type=cache,target=/root/.cache/go-build \ --mount=type=cache,target=/root/.cache/go-build \
...@@ -21,4 +22,4 @@ WORKDIR /app/ ...@@ -21,4 +22,4 @@ WORKDIR /app/
COPY --from=builder /plugin-registry/artifacts/plugin-registry . COPY --from=builder /plugin-registry/artifacts/plugin-registry .
COPY --from=builder /plugin-registry/plugin-registry/plugins ./plugins COPY --from=builder /plugin-registry/plugin-registry/plugins ./plugins
COPY --from=builder /plugin-registry/dev_env_data/plugin-registry/plugin-store.json ./plugin-store.json COPY --from=builder /plugin-registry/dev_env_data/plugin-registry/plugin-store.json ./plugin-store.json
ENTRYPOINT ["./plugin-registry", "-socket", "55057"] ENTRYPOINT ["./plugin-registry", "-socket", "55057"]
\ No newline at end of file
node_modules/
dist/
vite/
tmp/
.vscode/
\ No newline at end of file
FROM nginx:alpine3.20 FROM node:alpine3.20 as builder
COPY ./api/openapiv2/gosdn_northbound.swagger.json /app/api/openapiv2/gosdn_northbound.swagger.json
COPY ./react-ui /app/react-ui
RUN cd /app/react-ui && yarn && yarn build
COPY dist /usr/share/nginx/html
COPY docker/webserver/nginx.conf /etc/nginx/nginx.conf # webserver
\ No newline at end of file FROM nginx:alpine3.20
COPY --from=builder /app/react-ui/dist /usr/share/nginx/html
COPY --from=builder /app/react-ui/docker/webserver/nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
\ No newline at end of file
...@@ -41,7 +41,6 @@ http { ...@@ -41,7 +41,6 @@ http {
#access_log logs/host.access.log main; #access_log logs/host.access.log main;
location ^~ /api/ { location ^~ /api/ {
proxy_set_header Host $host; proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Real-IP $remote_addr;
......
...@@ -7,7 +7,7 @@ docker run --rm \ ...@@ -7,7 +7,7 @@ docker run --rm \
-w /app \ -w /app \
-u $(id -u):$(id -g) \ -u $(id -u):$(id -g) \
$IMAGE \ $IMAGE \
yarn install && yarn build yarn && yarn build
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
echo "Error while building frontend app" echo "Error while building frontend app"
......
...@@ -8,10 +8,11 @@ export default defineConfig({ ...@@ -8,10 +8,11 @@ export default defineConfig({
}, },
// develop server // develop server
server: { server: {
host: true,
port: 3000, port: 3000,
proxy: { proxy: {
'/api': { '/api': {
target: 'http://127.0.0.1:8080', target: 'http://clab-gosdn_csbi_arista_base-gosdn:8080',
changeOrigin: true, changeOrigin: true,
secure: false, secure: false,
rewrite: (path) => path.replace(/^\/api/, ''), rewrite: (path) => path.replace(/^\/api/, ''),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment