Merge pull request 'Add helmchart' (#16) from helm into master
Reviewed-on: #16
This commit is contained in:
commit
543d02f7a2
65
backend/requirements.txt
Normal file
65
backend/requirements.txt
Normal 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
26
frontend/Dockerfile
Normal 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
4
navix-helm/Chart.yaml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
apiVersion: v2
|
||||||
|
name: navix
|
||||||
|
version: 0.1.0
|
||||||
|
description: A DevOps dashboard called Navix
|
||||||
29
navix-helm/templates/backend-deployment.yaml
Normal file
29
navix-helm/templates/backend-deployment.yaml
Normal 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 }}"
|
||||||
11
navix-helm/templates/backend-service.yaml
Normal file
11
navix-helm/templates/backend-service.yaml
Normal 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
|
||||||
20
navix-helm/templates/frontend-deployment.yaml
Normal file
20
navix-helm/templates/frontend-deployment.yaml
Normal 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
|
||||||
23
navix-helm/templates/frontend-ingress.yaml
Normal file
23
navix-helm/templates/frontend-ingress.yaml
Normal 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 }}
|
||||||
11
navix-helm/templates/frontend-service.yaml
Normal file
11
navix-helm/templates/frontend-service.yaml
Normal 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
35
navix-helm/values.yaml
Normal 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
|
||||||
Loading…
x
Reference in New Issue
Block a user