From cec81e48c9b78e37f0ffdb8b3b2cb5ac07fe767c Mon Sep 17 00:00:00 2001 From: dvirlabs Date: Wed, 18 Jun 2025 06:21:45 +0300 Subject: [PATCH] Try the new plugin --- .woodpecker.yaml | 104 ++++++------------ backend/__pycache__/main.cpython-313.pyc | Bin 4404 -> 4497 bytes backend/main.py | 32 +++--- frontend/Dockerfile | 17 ++- frontend/docker-entrypoint.sh | 4 +- frontend/index.html | 1 + frontend/src/services/api.js | 2 +- frontend/vite-config.js-develop | 14 +++ navix-helm/templates/backend-ingress.yaml | 23 ++++ .../templates/frontend-env-configmap.yaml | 2 +- navix-helm/values.yaml | 13 ++- 11 files changed, 116 insertions(+), 96 deletions(-) create mode 100644 frontend/vite-config.js-develop create mode 100644 navix-helm/templates/backend-ingress.yaml diff --git a/.woodpecker.yaml b/.woodpecker.yaml index 56db5b5..d17cc99 100644 --- a/.woodpecker.yaml +++ b/.woodpecker.yaml @@ -1,72 +1,38 @@ -when: - event: - - push - - pull_request - branch: - - master - steps: - - name: tag - image: alpine - commands: - - export TAG_DATE=$(date +%Y%m%d) - - export SHORT_SHA=${CI_COMMIT_SHA:0:7} - - echo "TAGS=latest,$TAG_DATE-$SHORT_SHA" > .tags.env + build-frontend: + name: Build & Push Frontend with wp-kaniko-sync + image: harbor.dvirlabs.com/devtools/wp-kaniko-sync:latest + settings: + PLUGIN_CONTEXT: frontend + PLUGIN_DOCKERFILE: frontend/Dockerfile + PLUGIN_REPO: my-apps/labmap-frontend + PLUGIN_REGISTRY: harbor.dvirlabs.com + PLUGIN_NAME: frontend + PLUGIN_GIT_REPO: git.dvirlabs.com/dvirlabs/my-apps.git + PLUGIN_VALUES_FILE: manifests/labmap/values.yaml + PLUGIN_VALUES_PATH: frontend.tag + PLUGIN_GIT_USERNAME: + from_secret: GIT_USERNAME + PLUGIN_GIT_TOKEN: + from_secret: GIT_TOKEN - - name: setup-docker-config - image: alpine - commands: - - mkdir -p /kaniko/.docker - - | - cat < /kaniko/.docker/config.json - { - "auths": { - "harbor.dvirlabs.com": { - "auth": "ZHZpcmxhYnM6S1loaHBlMUhwNk5DR2IxWDJVQ0VDRUtjS25mSFhodEY=" - } - } - } - EOF - volumes: - - name: docker-config - path: /kaniko/.docker/ + build-backend: + name: Build & Push Backend with wp-kaniko-sync + image: harbor.dvirlabs.com/devtools/wp-kaniko-sync:latest + settings: + PLUGIN_CONTEXT: backend + PLUGIN_DOCKERFILE: backend/Dockerfile + PLUGIN_REPO: my-apps/labmap-backend + PLUGIN_REGISTRY: harbor.dvirlabs.com + PLUGIN_NAME: backend + PLUGIN_GIT_REPO: git.dvirlabs.com/dvirlabs/my-apps.git + PLUGIN_VALUES_FILE: manifests/labmap/values.yaml + PLUGIN_VALUES_PATH: backend.tag + PLUGIN_GIT_USERNAME: + from_secret: GIT_USERNAME + PLUGIN_GIT_TOKEN: + from_secret: GIT_TOKEN - - name: build-frontend - image: gcr.io/kaniko-project/executor:latest - environment: - DOCKER_CONFIG: /kaniko/.docker/ - volumes: - - name: docker-config - path: /kaniko/.docker/ - commands: - - | - for TAG in $(cut -d= -f2 .tags.env | tr ',' '\n'); do - /kaniko/executor \ - --dockerfile=frontend/Dockerfile \ - --context=frontend \ - --destination=harbor.dvirlabs.com/my-apps/navix-frontend:$TAG \ - --insecure \ - --skip-tls-verify - done - - - name: build-backend - image: gcr.io/kaniko-project/executor:latest - environment: - DOCKER_CONFIG: /kaniko/.docker/ - volumes: - - name: docker-config - path: /kaniko/.docker/ - commands: - - | - for TAG in $(cut -d= -f2 .tags.env | tr ',' '\n'); do - /kaniko/executor \ - --dockerfile=backend/Dockerfile \ - --context=backend \ - --destination=harbor.dvirlabs.com/my-apps/navix-backend:$TAG \ - --insecure \ - --skip-tls-verify - done - -volumes: - - name: docker-config - temp: {} +when: + branch: [ master, develop ] + event: [ push, tag ] diff --git a/backend/__pycache__/main.cpython-313.pyc b/backend/__pycache__/main.cpython-313.pyc index add390fa8987fec3f0a44f08ac3c7ae67e0e9e1a..6f418918d7fd0604ab3dc80c53eb99ba3fc98ea1 100644 GIT binary patch delta 1310 zcmZuw+i%-c7(d5$?AWoLILkfla%q+}jI~3oKsq|9R8SEM81<@MWSGK|ww}5qI?15y zrI{wQN_%N_K-$xkNt5UkFXL$%e*r>DsZfUnq7zTNrAj3(0>n8^))s+fedqW6zU%q? z`OEbBkkVBY36SS5m|lEwU5T#jF#vo93}8SV6d-~H1~EyhGdf$~5a(c4cNKWVJDAf2 zBoMnxcNat?_BjbjgyVHjK}NE}3A$2Hk?LT#?k)I`F9}ST2II6od5~r@>6ru7Z)&r{ zJ=0-na)vkt4at!ddGaojNIXbHGy#voup*DcUL*?knDxITHqS4qGETeHGc5saWQ^t>A3I^~GaBwBK z?-M%YlZ=2gFv2llL`-#@?Khor*eGFRhuAc!KJ!1-t3d-2QAcy`J$h zqn$sx@0l=<5zpkmJhNo%@BBBv={HhFI!|`N95IF_E&x!B0J;~Poh)=?&+}rYvv^TyEqSnk>iI!W+eUW9saiwn)Tm^?IX>@NdjnJjZ^0gkHHz7m=(U zG?nagVup8M;)HtmGj|@s6Zka$6+DH1=N}MxPq+am zaMXPXPCRV57g=})|LA!O^7y!XPf7tb{hgBfiPD+_&R5%l%P^AGLB8;k$| delta 1205 zcmZuwO=ufO6n?Wm+Lg4cKU-eOlA~Y8wm?o&YFwpuQ#Z8GT^fS6C23hw29(yVU8B-dR3UbY<5;~OR)HiE8G|*w^&G)|dy*F=$ z**m$PviexpeSqWc&bf^r?&$HIp9O$#!3LXHU=m8w91E6Uid1y5Xi26_Wfx19hk7tB zTZ*Yt^@#IQFLEBsXZoq%sy?-a59uH{H8VH=Kml!{{XJS;>qV$@v?W)Yt_b%dLUjYFIYEs?|8H0A`e;6$A% z$H2zxwi42 zy6G5X!H!LX9e4C45g@`-X~w0ekxn=|Glfhz`8<8b$-XSuC)gLl>~iWkn|5ZA%}m3` zl6#}P%1LL=&YrytP>ErCU`y6Kop-ROO>tL^)XJ*h|&C}$S}C9Tj`uHu0!+jT0k?*cPB zyvu(0h+Cw!)^@Yes!Hi42>2szeT{Y~5<&)$7{E&dC_Do108Tst{{UhL24J8ac|Zy5);l7LhZ;5X zLeYm(D8wS8 /usr/share/nginx/html/env.js -CMD ["/docker-entrypoint.sh"] +# Set entrypoint +ENTRYPOINT ["/docker-entrypoint.sh"] diff --git a/frontend/docker-entrypoint.sh b/frontend/docker-entrypoint.sh index 09e117e..6fab1ad 100644 --- a/frontend/docker-entrypoint.sh +++ b/frontend/docker-entrypoint.sh @@ -1,11 +1,11 @@ #!/bin/sh set -e -# Generate env.js at runtime +# Generate env.js at runtime from env var cat < /usr/share/nginx/html/env.js window.env = { VITE_API_URL: "${VITE_API_URL}" -} +}; EOF exec nginx -g "daemon off;" diff --git a/frontend/index.html b/frontend/index.html index ca5b307..164436e 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -5,6 +5,7 @@ + Navix diff --git a/frontend/src/services/api.js b/frontend/src/services/api.js index 66bf39e..309ad6a 100644 --- a/frontend/src/services/api.js +++ b/frontend/src/services/api.js @@ -1,4 +1,4 @@ -const API_BASE = window?.env?.VITE_API_URL || ''; +const API_BASE = window?.env?.VITE_API_URL || '/api'; export async function fetchSections() { const res = await fetch(`${API_BASE}/apps`); diff --git a/frontend/vite-config.js-develop b/frontend/vite-config.js-develop new file mode 100644 index 0000000..ea8be0a --- /dev/null +++ b/frontend/vite-config.js-develop @@ -0,0 +1,14 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], + server: { + proxy: { + '/apps': 'http://localhost:8000', + '/add_app': 'http://localhost:8000', + '/icon': 'http://localhost:8000', + } + } +}); diff --git a/navix-helm/templates/backend-ingress.yaml b/navix-helm/templates/backend-ingress.yaml new file mode 100644 index 0000000..02fa268 --- /dev/null +++ b/navix-helm/templates/backend-ingress.yaml @@ -0,0 +1,23 @@ +{{- if .Values.backend.ingress.enabled }} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: navix-backend + annotations: + {{- range $key, $value := .Values.backend.ingress.annotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} +spec: + ingressClassName: {{ .Values.backend.ingress.className }} + rules: + - host: {{ .Values.backend.ingress.hosts[0].host }} + http: + paths: + - path: /api + pathType: Prefix + backend: + service: + name: navix-backend + port: + number: {{ .Values.backend.service.port }} +{{- end }} diff --git a/navix-helm/templates/frontend-env-configmap.yaml b/navix-helm/templates/frontend-env-configmap.yaml index 75e69c9..a4faaf6 100644 --- a/navix-helm/templates/frontend-env-configmap.yaml +++ b/navix-helm/templates/frontend-env-configmap.yaml @@ -5,5 +5,5 @@ metadata: data: env.js: | window.env = { - VITE_API_URL: "http://navix-backend.{{ .Release.Namespace }}.svc.cluster.local:8000" + VITE_API_URL: "{{ .Values.frontend.env.VITE_API_URL }}" }; diff --git a/navix-helm/values.yaml b/navix-helm/values.yaml index a4f148e..f97bd25 100644 --- a/navix-helm/values.yaml +++ b/navix-helm/values.yaml @@ -17,6 +17,8 @@ frontend: paths: - path: / pathType: Prefix + env: + VITE_API_URL: "/api" backend: image: @@ -32,4 +34,13 @@ backend: MINIO_ENDPOINT: "s3.dvirlabs.com" MINIO_BUCKET: "navix-icons" ingress: - enabled: false \ No newline at end of file + enabled: true + className: traefik + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" + hosts: + - host: navix.dvirlabs.com + paths: + - path: /api + pathType: Prefix