mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 15:12:08 +01:00
Compare commits
1 Commits
merge/fron
...
2f7ae644d3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f7ae644d3 |
5
.github/workflows/deploy-prod.yaml
vendored
5
.github/workflows/deploy-prod.yaml
vendored
@@ -85,7 +85,7 @@ jobs:
|
|||||||
BANKID_CLIENT_SECRET: ${{ secrets.BANKID_CLIENT_SECRET }}
|
BANKID_CLIENT_SECRET: ${{ secrets.BANKID_CLIENT_SECRET }}
|
||||||
MOJEID_CLIENT_ID: ${{ secrets.MOJEID_CLIENT_ID }}
|
MOJEID_CLIENT_ID: ${{ secrets.MOJEID_CLIENT_ID }}
|
||||||
MOJEID_CLIENT_SECRET: ${{ secrets.MOJEID_CLIENT_SECRET }}
|
MOJEID_CLIENT_SECRET: ${{ secrets.MOJEID_CLIENT_SECRET }}
|
||||||
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
|
|
||||||
run: |
|
run: |
|
||||||
helm upgrade --install myapp ./7project/charts/myapp-chart \
|
helm upgrade --install myapp ./7project/charts/myapp-chart \
|
||||||
-n prod --create-namespace \
|
-n prod --create-namespace \
|
||||||
@@ -101,5 +101,4 @@ jobs:
|
|||||||
--set-string oauth.bankid.clientId="$BANKID_CLIENT_ID" \
|
--set-string oauth.bankid.clientId="$BANKID_CLIENT_ID" \
|
||||||
--set-string oauth.bankid.clientSecret="$BANKID_CLIENT_SECRET" \
|
--set-string oauth.bankid.clientSecret="$BANKID_CLIENT_SECRET" \
|
||||||
--set-string oauth.mojeid.clientId="$MOJEID_CLIENT_ID" \
|
--set-string oauth.mojeid.clientId="$MOJEID_CLIENT_ID" \
|
||||||
--set-string oauth.mojeid.clientSecret="$MOJEID_CLIENT_SECRET" \
|
--set-string oauth.mojeid.clientSecret="$MOJEID_CLIENT_SECRET"
|
||||||
--set-string sentry_dsn="$SENTRY_DSN" \
|
|
||||||
@@ -14,16 +14,6 @@ from app.api.categories import router as categories_router
|
|||||||
from app.api.transactions import router as transactions_router
|
from app.api.transactions import router as transactions_router
|
||||||
from app.services.user_service import auth_backend, current_active_verified_user, fastapi_users, get_oauth_provider
|
from app.services.user_service import auth_backend, current_active_verified_user, fastapi_users, get_oauth_provider
|
||||||
|
|
||||||
|
|
||||||
from fastapi import FastAPI
|
|
||||||
import sentry_sdk
|
|
||||||
|
|
||||||
sentry_sdk.init(
|
|
||||||
dsn=os.getenv("SENTRY_DSN"),
|
|
||||||
send_default_pii=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
app = FastAPI()
|
|
||||||
fastApi = FastAPI()
|
fastApi = FastAPI()
|
||||||
|
|
||||||
# CORS for frontend dev server
|
# CORS for frontend dev server
|
||||||
@@ -96,7 +86,3 @@ async def root():
|
|||||||
@fastApi.get("/authenticated-route")
|
@fastApi.get("/authenticated-route")
|
||||||
async def authenticated_route(user: User = Depends(current_active_verified_user)):
|
async def authenticated_route(user: User = Depends(current_active_verified_user)):
|
||||||
return {"message": f"Hello {user.email}!"}
|
return {"message": f"Hello {user.email}!"}
|
||||||
|
|
||||||
@fastApi.get("/sentry-debug")
|
|
||||||
async def trigger_error():
|
|
||||||
division_by_zero = 1 / 0
|
|
||||||
@@ -50,7 +50,6 @@ python-dateutil==2.9.0.post0
|
|||||||
python-dotenv==1.1.1
|
python-dotenv==1.1.1
|
||||||
python-multipart==0.0.20
|
python-multipart==0.0.20
|
||||||
PyYAML==6.0.2
|
PyYAML==6.0.2
|
||||||
sentry-sdk==2.42.0
|
|
||||||
six==1.17.0
|
six==1.17.0
|
||||||
sniffio==1.3.1
|
sniffio==1.3.1
|
||||||
SQLAlchemy==2.0.43
|
SQLAlchemy==2.0.43
|
||||||
@@ -59,7 +58,6 @@ tomli==2.2.1
|
|||||||
typing-inspection==0.4.1
|
typing-inspection==0.4.1
|
||||||
typing_extensions==4.15.0
|
typing_extensions==4.15.0
|
||||||
tzdata==2025.2
|
tzdata==2025.2
|
||||||
urllib3==2.5.0
|
|
||||||
uvicorn==0.37.0
|
uvicorn==0.37.0
|
||||||
uvloop==0.21.0
|
uvloop==0.21.0
|
||||||
vine==5.1.0
|
vine==5.1.0
|
||||||
|
|||||||
@@ -86,11 +86,6 @@ spec:
|
|||||||
value: {{ required "Set .Values.frontend_domain" .Values.frontend_domain | quote }}
|
value: {{ required "Set .Values.frontend_domain" .Values.frontend_domain | quote }}
|
||||||
- name: FRONTEND_DOMAIN_SCHEME
|
- name: FRONTEND_DOMAIN_SCHEME
|
||||||
value: {{ required "Set .Values.frontend_domain_scheme" .Values.frontend_domain_scheme | quote }}
|
value: {{ required "Set .Values.frontend_domain_scheme" .Values.frontend_domain_scheme | quote }}
|
||||||
- name: SENTRY_DSN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: prod
|
|
||||||
key: SENTRY_DSN
|
|
||||||
livenessProbe:
|
livenessProbe:
|
||||||
httpGet:
|
httpGet:
|
||||||
path: /
|
path: /
|
||||||
|
|||||||
@@ -15,4 +15,3 @@ stringData:
|
|||||||
# RabbitMQ credentials
|
# RabbitMQ credentials
|
||||||
RABBITMQ_PASSWORD: {{ .Values.rabbitmq.password | default "" | quote }}
|
RABBITMQ_PASSWORD: {{ .Values.rabbitmq.password | default "" | quote }}
|
||||||
RABBITMQ_USERNAME: {{ .Values.rabbitmq.username | quote }}
|
RABBITMQ_USERNAME: {{ .Values.rabbitmq.username | quote }}
|
||||||
SENTRY_DSN: {{ .Values.sentry_dsn | quote }}
|
|
||||||
|
|||||||
@@ -65,8 +65,3 @@ spec:
|
|||||||
value: {{ .Values.rabbitmq.vhost | default "/" | quote }}
|
value: {{ .Values.rabbitmq.vhost | default "/" | quote }}
|
||||||
- name: MAIL_QUEUE
|
- name: MAIL_QUEUE
|
||||||
value: {{ .Values.worker.mailQueueName | default "mail_queue" | quote }}
|
value: {{ .Values.worker.mailQueueName | default "mail_queue" | quote }}
|
||||||
- name: SENTRY_DSN
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: prod
|
|
||||||
key: SENTRY_DSN
|
|
||||||
|
|||||||
@@ -16,8 +16,6 @@ domain_scheme: ""
|
|||||||
frontend_domain: ""
|
frontend_domain: ""
|
||||||
frontend_domain_scheme: ""
|
frontend_domain_scheme: ""
|
||||||
|
|
||||||
sentry_dsn: ""
|
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: lukastrkan/cc-app-demo
|
repository: lukastrkan/cc-app-demo
|
||||||
# You can use a tag or digest. If digest is provided, it takes precedence.
|
# You can use a tag or digest. If digest is provided, it takes precedence.
|
||||||
|
|||||||
20
7project/deployment/app-demo-database-grant.yaml
Normal file
20
7project/deployment/app-demo-database-grant.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: k8s.mariadb.com/v1alpha1
|
||||||
|
kind: Grant
|
||||||
|
metadata:
|
||||||
|
name: grant
|
||||||
|
spec:
|
||||||
|
mariaDbRef:
|
||||||
|
name: mariadb-repl
|
||||||
|
namespace: mariadb-operator
|
||||||
|
privileges:
|
||||||
|
- "ALL PRIVILEGES"
|
||||||
|
database: "app-demo-database"
|
||||||
|
table: "*"
|
||||||
|
username: "app-demo-user"
|
||||||
|
grantOption: true
|
||||||
|
host: "%"
|
||||||
|
# Delete the resource in the database whenever the CR gets deleted.
|
||||||
|
# Alternatively, you can specify Skip in order to omit deletion.
|
||||||
|
cleanupPolicy: Skip
|
||||||
|
requeueInterval: 10h
|
||||||
|
retryInterval: 30s
|
||||||
7
7project/deployment/app-demo-database-secret.yaml
Normal file
7
7project/deployment/app-demo-database-secret.yaml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: app-demo-database-secret
|
||||||
|
type: kubernetes.io/basic-auth
|
||||||
|
stringData:
|
||||||
|
password: "strongpassword"
|
||||||
20
7project/deployment/app-demo-database-user.yaml
Normal file
20
7project/deployment/app-demo-database-user.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: k8s.mariadb.com/v1alpha1
|
||||||
|
kind: User
|
||||||
|
metadata:
|
||||||
|
name: app-demo-user
|
||||||
|
spec:
|
||||||
|
# If you want the user to be created with a different name than the resource name
|
||||||
|
# name: user-custom
|
||||||
|
mariaDbRef:
|
||||||
|
name: mariadb-repl
|
||||||
|
namespace: mariadb-operator
|
||||||
|
passwordSecretKeyRef:
|
||||||
|
name: app-demo-database-secret
|
||||||
|
key: password
|
||||||
|
maxUserConnections: 20
|
||||||
|
host: "%"
|
||||||
|
# Delete the resource in the database whenever the CR gets deleted.
|
||||||
|
# Alternatively, you can specify Skip in order to omit deletion.
|
||||||
|
cleanupPolicy: Skip
|
||||||
|
requeueInterval: 10h
|
||||||
|
retryInterval: 30s
|
||||||
15
7project/deployment/app-demo-database.yaml
Normal file
15
7project/deployment/app-demo-database.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: k8s.mariadb.com/v1alpha1
|
||||||
|
kind: Database
|
||||||
|
metadata:
|
||||||
|
name: app-demo-database
|
||||||
|
spec:
|
||||||
|
mariaDbRef:
|
||||||
|
name: mariadb-repl
|
||||||
|
namespace: mariadb-operator
|
||||||
|
characterSet: utf8
|
||||||
|
collate: utf8_general_ci
|
||||||
|
# Delete the resource in the database whenever the CR gets deleted.
|
||||||
|
# Alternatively, you can specify Skip in order to omit deletion.
|
||||||
|
cleanupPolicy: Skip
|
||||||
|
requeueInterval: 10h
|
||||||
|
retryInterval: 30s
|
||||||
48
7project/deployment/app-demo-deployment.yaml
Normal file
48
7project/deployment/app-demo-deployment.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: app-demo
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
revisionHistoryLimit: 3
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: app-demo
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: app-demo
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: lukastrkan/cc-app-demo@sha256:75634b4d97282b6b8424fe17767c81adf44af5f7359c1d25883073b5629b3e05
|
||||||
|
name: app-demo
|
||||||
|
ports:
|
||||||
|
- containerPort: 8000
|
||||||
|
env:
|
||||||
|
- name: MARIADB_HOST
|
||||||
|
value: mariadb-repl.mariadb-operator.svc.cluster.local
|
||||||
|
- name: MARIADB_PORT
|
||||||
|
value: '3306'
|
||||||
|
- name: MARIADB_DB
|
||||||
|
value: app-demo-database
|
||||||
|
- name: MARIADB_USER
|
||||||
|
value: app-demo-user
|
||||||
|
- name: MARIADB_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: app-demo-database-secret
|
||||||
|
key: password
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8000
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
failureThreshold: 3
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: 8000
|
||||||
|
initialDelaySeconds: 10
|
||||||
|
periodSeconds: 10
|
||||||
|
failureThreshold: 3
|
||||||
10
7project/deployment/app-demo-svc.yaml
Normal file
10
7project/deployment/app-demo-svc.yaml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: app-demo
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
targetPort: 8000
|
||||||
|
selector:
|
||||||
|
app: app-demo
|
||||||
41
7project/deployment/app-demo-worker-deployment.yaml
Normal file
41
7project/deployment/app-demo-worker-deployment.yaml
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: app-demo-worker
|
||||||
|
spec:
|
||||||
|
replicas: 3
|
||||||
|
revisionHistoryLimit: 3
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: app-demo-worker
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: app-demo-worker
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: lukastrkan/cc-app-demo@sha256:75634b4d97282b6b8424fe17767c81adf44af5f7359c1d25883073b5629b3e05
|
||||||
|
name: app-demo-worker
|
||||||
|
command:
|
||||||
|
- celery
|
||||||
|
- -A
|
||||||
|
- app.celery_app
|
||||||
|
- worker
|
||||||
|
- -Q
|
||||||
|
- $(MAIL_QUEUE)
|
||||||
|
- --loglevel
|
||||||
|
- INFO
|
||||||
|
env:
|
||||||
|
- name: RABBITMQ_USERNAME
|
||||||
|
value: demo-app
|
||||||
|
- name: RABBITMQ_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: demo-app-user-credentials
|
||||||
|
key: password
|
||||||
|
- name: RABBITMQ_HOST
|
||||||
|
value: rabbitmq.rabbitmq.svc.cluster.local
|
||||||
|
- name: RABBITMQ_PORT
|
||||||
|
value: '5672'
|
||||||
|
- name: RABBITMQ_VHOST
|
||||||
|
value: "/"
|
||||||
14
7project/deployment/tunnel.yaml
Normal file
14
7project/deployment/tunnel.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
apiVersion: networking.cfargotunnel.com/v1alpha1
|
||||||
|
kind: TunnelBinding
|
||||||
|
metadata:
|
||||||
|
name: guestbook-tunnel-binding
|
||||||
|
namespace: group-project
|
||||||
|
subjects:
|
||||||
|
- name: app-server
|
||||||
|
spec:
|
||||||
|
target: http://app-demo.group-project.svc.cluster.local
|
||||||
|
fqdn: demo.ltrk.cz
|
||||||
|
noTlsVerify: true
|
||||||
|
tunnelRef:
|
||||||
|
kind: ClusterTunnel
|
||||||
|
name: cluster-tunnel
|
||||||
Reference in New Issue
Block a user