Files
TafsirQuran/k8s/manifest.yaml
T
admin ae746d65ba
build-and-deploy / deploy (push) Failing after 15m11s
Migrate to Blazor WASM, MSSQL platform DB, and durable audio PVC.
Remove in-cluster Postgres; serve WASM via nginx; add audio import job for Gooya archives.
2026-10-09 22:40:53 +03:30

165 lines
3.6 KiB
YAML

apiVersion: v1
kind: Namespace
metadata:
name: tafsirquran
---
apiVersion: v1
kind: Secret
metadata:
name: tafsirquran-secrets
namespace: tafsirquran
type: Opaque
stringData:
MSSQL_SA_PASSWORD: "87zH26nbqT"
Jwt__Key: TafsirQuran-Prod-Secret-Key-Change-Me-32chars
ConnectionStrings__Default: "Server=mssql-svc.platform.svc.cluster.local,1433;Database=TafsirQuran;User Id=sa;Password=87zH26nbqT;TrustServerCertificate=True;Encrypt=False"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: tafsirquran-api-env
namespace: tafsirquran
data:
ASPNETCORE_URLS: "http://+:5080"
AudioRoot: "/data/audio"
Jwt__Issuer: "TafsirQuran"
Jwt__Audience: "TafsirQuran"
Jwt__ExpireMinutes: "43200"
---
apiVersion: v1
kind: ConfigMap
metadata:
name: tafsirquran-web-env
namespace: tafsirquran
data:
ApiBaseAddress: "http://185.252.31.44:30821/"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: tafsirquran-audio
namespace: tafsirquran
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: local-path
resources:
requests:
storage: 100Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tafsirquran-api
namespace: tafsirquran
spec:
replicas: 1
selector:
matchLabels:
app: tafsirquran-api
template:
metadata:
labels:
app: tafsirquran-api
spec:
containers:
- name: api
image: tafsirquran-api:latest
imagePullPolicy: Never
ports:
- containerPort: 5080
envFrom:
- configMapRef:
name: tafsirquran-api-env
env:
- name: Jwt__Key
valueFrom:
secretKeyRef:
name: tafsirquran-secrets
key: Jwt__Key
- name: ConnectionStrings__Default
valueFrom:
secretKeyRef:
name: tafsirquran-secrets
key: ConnectionStrings__Default
volumeMounts:
- name: audio
mountPath: /data/audio
readinessProbe:
httpGet:
path: /
port: 5080
initialDelaySeconds: 15
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 5080
initialDelaySeconds: 40
periodSeconds: 20
volumes:
- name: audio
persistentVolumeClaim:
claimName: tafsirquran-audio
---
apiVersion: v1
kind: Service
metadata:
name: tafsirquran-api
namespace: tafsirquran
spec:
type: NodePort
selector:
app: tafsirquran-api
ports:
- port: 5080
targetPort: 5080
nodePort: 30821
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tafsirquran-web
namespace: tafsirquran
spec:
replicas: 1
selector:
matchLabels:
app: tafsirquran-web
template:
metadata:
labels:
app: tafsirquran-web
spec:
containers:
- name: web
image: tafsirquran-web:latest
imagePullPolicy: Never
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 15
periodSeconds: 20
---
apiVersion: v1
kind: Service
metadata:
name: tafsirquran-web
namespace: tafsirquran
spec:
type: NodePort
selector:
app: tafsirquran-web
ports:
- port: 80
targetPort: 80
nodePort: 30820