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