Add helmchart

This commit is contained in:
dvirlabs 2025-06-04 16:56:54 +03:00
parent 4c2e4844a4
commit 8a904d23c2
9 changed files with 224 additions and 0 deletions

65
backend/requirements.txt Normal file
View File

@ -0,0 +1,65 @@
annotated-types==0.7.0
anyio==4.4.0
argon2-cffi==25.1.0
argon2-cffi-bindings==21.2.0
boto3==1.34.150
botocore==1.34.150
certifi==2024.6.2
cffi==1.16.0
charset-normalizer==3.3.2
click==8.1.7
colorama==0.4.6
cryptography==43.0.0
Deprecated==1.2.14
dnspython==2.6.1
email_validator==2.2.0
fastapi==0.111.0
fastapi-cli==0.0.4
gitdb==4.0.11
GitPython==3.1.43
h11==0.14.0
httpcore==1.0.5
httptools==0.6.1
httpx==0.27.0
idna==3.7
Jinja2==3.1.4
jmespath==1.0.1
markdown-it-py==3.0.0
MarkupSafe==2.1.5
mdurl==0.1.2
minio==7.2.15
numpy==2.2.1
orjson==3.10.5
pandas==2.2.3
prometheus_client==0.21.1
pycparser==2.22
pycryptodome==3.23.0
pydantic==2.8.0
pydantic_core==2.20.0
PyGithub==2.3.0
Pygments==2.18.0
PyJWT==2.8.0
pymongo==4.11.2
PyNaCl==1.5.0
python-dateutil==2.9.0.post0
python-dotenv==1.0.1
python-multipart==0.0.9
pytz==2024.2
PyYAML==6.0.1
requests==2.32.3
rich==13.7.1
s3transfer==0.10.2
shellingham==1.5.4
six==1.16.0
smmap==5.0.1
sniffio==1.3.1
starlette==0.37.2
typer==0.12.3
typing_extensions==4.12.2
tzdata==2024.2
ujson==5.10.0
urllib3==2.2.2
uvicorn==0.30.1
watchfiles==0.22.0
websockets==12.0
wrapt==1.16.0

26
frontend/Dockerfile Normal file
View File

@ -0,0 +1,26 @@
# Stage 1: Build
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install --legacy-peer-deps
COPY . .
RUN npm run build
# Stage 2: Serve with nginx
FROM nginx:alpine
# Remove default nginx static files
RUN rm -rf /usr/share/nginx/html/*
# Copy built assets from the builder stage
COPY --from=builder /app/dist /usr/share/nginx/html
# Copy custom nginx config if needed
# COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

4
navix-helm/Chart.yaml Normal file
View File

@ -0,0 +1,4 @@
apiVersion: v2
name: navix
version: 0.1.0
description: A DevOps dashboard called Navix

View File

@ -0,0 +1,29 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: navix-backend
spec:
replicas: 1
selector:
matchLabels:
app: navix-backend
template:
metadata:
labels:
app: navix-backend
spec:
containers:
- name: backend
image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}"
imagePullPolicy: {{ .Values.backend.image.pullPolicy }}
ports:
- containerPort: 8000
env:
- name: MINIO_ACCESS_KEY
value: "{{ .Values.backend.env.MINIO_ACCESS_KEY }}"
- name: MINIO_SECRET_KEY
value: "{{ .Values.backend.env.MINIO_SECRET_KEY }}"
- name: MINIO_ENDPOINT
value: "{{ .Values.backend.env.MINIO_ENDPOINT }}"
- name: MINIO_BUCKET
value: "{{ .Values.backend.env.MINIO_BUCKET }}"

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: navix-backend
spec:
type: {{ .Values.backend.service.type }}
selector:
app: navix-backend
ports:
- port: {{ .Values.backend.service.port }}
targetPort: 8000

View File

@ -0,0 +1,20 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: navix-frontend
spec:
replicas: 1
selector:
matchLabels:
app: navix-frontend
template:
metadata:
labels:
app: navix-frontend
spec:
containers:
- name: frontend
image: "{{ .Values.frontend.image.repository }}:{{ .Values.frontend.image.tag }}"
imagePullPolicy: {{ .Values.frontend.image.pullPolicy }}
ports:
- containerPort: 80

View File

@ -0,0 +1,23 @@
{{- if .Values.frontend.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: navix-frontend
annotations:
{{- range $key, $value := .Values.frontend.ingress.annotations }}
{{ $key }}: {{ $value | quote }}
{{- end }}
spec:
ingressClassName: {{ .Values.frontend.ingress.className }}
rules:
- host: {{ .Values.frontend.ingress.hosts[0].host }}
http:
paths:
- path: {{ .Values.frontend.ingress.hosts[0].paths[0].path }}
pathType: {{ .Values.frontend.ingress.hosts[0].paths[0].pathType }}
backend:
service:
name: navix-frontend
port:
number: {{ .Values.frontend.service.port }}
{{- end }}

View File

@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: navix-frontend
spec:
type: {{ .Values.frontend.service.type }}
selector:
app: navix-frontend
ports:
- port: {{ .Values.frontend.service.port }}
targetPort: 80

35
navix-helm/values.yaml Normal file
View File

@ -0,0 +1,35 @@
frontend:
image:
repository: harbor.dvirlabs.com/my-apps/navix-frontend
tag: latest
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
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: /
pathType: Prefix
backend:
image:
repository: harbor.dvirlabs.com/my-apps/navix-backend
tag: latest
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 8000
env:
MINIO_ACCESS_KEY: "your-access-key"
MINIO_SECRET_KEY: "your-secret-key"
MINIO_ENDPOINT: "s3.dvirlabs.com"
MINIO_BUCKET: "navix-icons"
ingress:
enabled: false