144 lines
4.7 KiB
JSON
144 lines
4.7 KiB
JSON
{
|
|
"apiVersion": "apps/v1",
|
|
"kind": "Deployment",
|
|
"metadata": {
|
|
"labels": {
|
|
"app.kubernetes.io/name": "presentations-web",
|
|
"app.kubernetes.io/part-of": "flowercore"
|
|
},
|
|
"name": "presentations-web",
|
|
"namespace": "fc-presentations"
|
|
},
|
|
"spec": {
|
|
"progressDeadlineSeconds": 600,
|
|
"replicas": 1,
|
|
"revisionHistoryLimit": 10,
|
|
"selector": {
|
|
"matchLabels": {
|
|
"app.kubernetes.io/name": "presentations-web"
|
|
}
|
|
},
|
|
"strategy": {
|
|
"type": "Recreate"
|
|
},
|
|
"template": {
|
|
"metadata": {
|
|
"annotations": {
|
|
"kubectl.kubernetes.io/restartedAt": "2026-04-23T14:47:39-05:00",
|
|
"prometheus.io/path": "/metrics/prometheus",
|
|
"prometheus.io/port": "8080",
|
|
"prometheus.io/scrape": "true"
|
|
},
|
|
"labels": {
|
|
"app.kubernetes.io/name": "presentations-web",
|
|
"app.kubernetes.io/part-of": "flowercore"
|
|
}
|
|
},
|
|
"spec": {
|
|
"containers": [
|
|
{
|
|
"envFrom": [
|
|
{
|
|
"configMapRef": {
|
|
"name": "presentations-web-config"
|
|
}
|
|
},
|
|
{
|
|
"secretRef": {
|
|
"name": "presentations-web-secrets"
|
|
}
|
|
}
|
|
],
|
|
"image": "localhost/fc-presentations:gx10-v1",
|
|
"imagePullPolicy": "Never",
|
|
"livenessProbe": {
|
|
"failureThreshold": 3,
|
|
"httpGet": {
|
|
"path": "/health",
|
|
"port": 8080,
|
|
"scheme": "HTTP"
|
|
},
|
|
"initialDelaySeconds": 30,
|
|
"periodSeconds": 30,
|
|
"successThreshold": 1,
|
|
"timeoutSeconds": 5
|
|
},
|
|
"name": "presentations-web",
|
|
"ports": [
|
|
{
|
|
"containerPort": 8080,
|
|
"name": "http",
|
|
"protocol": "TCP"
|
|
}
|
|
],
|
|
"readinessProbe": {
|
|
"failureThreshold": 6,
|
|
"httpGet": {
|
|
"path": "/health",
|
|
"port": 8080,
|
|
"scheme": "HTTP"
|
|
},
|
|
"initialDelaySeconds": 10,
|
|
"periodSeconds": 10,
|
|
"successThreshold": 1,
|
|
"timeoutSeconds": 5
|
|
},
|
|
"resources": {},
|
|
"terminationMessagePath": "/dev/termination-log",
|
|
"terminationMessagePolicy": "File",
|
|
"volumeMounts": [
|
|
{
|
|
"mountPath": "/data",
|
|
"name": "data",
|
|
"subPath": "data"
|
|
},
|
|
{
|
|
"mountPath": "/home/app/wwwroot/uploads",
|
|
"name": "data",
|
|
"subPath": "uploads"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"dnsPolicy": "ClusterFirst",
|
|
"initContainers": [
|
|
{
|
|
"command": [
|
|
"/bin/sh",
|
|
"-lc",
|
|
"set -eu\nmkdir -p /mnt/pvc/data /mnt/pvc/uploads\n\nfor file in presentations.db presentations.db-shm presentations.db-wal; do\n if [ -f \"/mnt/pvc/${file}\" ] && [ ! -f \"/mnt/pvc/data/${file}\" ]; then\n mv \"/mnt/pvc/${file}\" \"/mnt/pvc/data/${file}\"\n fi\ndone\n\nif [ -d /mnt/pvc/dp-keys ] && [ ! -d /mnt/pvc/data/dp-keys ]; then\n mv /mnt/pvc/dp-keys /mnt/pvc/data/dp-keys\nfi\n\nfor directory in imports slides html-bundles; do\n if [ -d \"/mnt/pvc/${directory}\" ] && [ ! -d \"/mnt/pvc/uploads/${directory}\" ]; then\n mv \"/mnt/pvc/${directory}\" \"/mnt/pvc/uploads/${directory}\"\n fi\ndone\n\nmkdir -p \\\n /mnt/pvc/data/dp-keys \\\n /mnt/pvc/uploads/imports \\\n /mnt/pvc/uploads/slides \\\n /mnt/pvc/uploads/html-bundles\n"
|
|
],
|
|
"image": "localhost/fc-presentations:gx10-v1",
|
|
"imagePullPolicy": "Never",
|
|
"name": "storage-init",
|
|
"resources": {},
|
|
"terminationMessagePath": "/dev/termination-log",
|
|
"terminationMessagePolicy": "File",
|
|
"volumeMounts": [
|
|
{
|
|
"mountPath": "/mnt/pvc",
|
|
"name": "data"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"restartPolicy": "Always",
|
|
"schedulerName": "default-scheduler",
|
|
"securityContext": {
|
|
"fsGroup": 1654,
|
|
"fsGroupChangePolicy": "OnRootMismatch"
|
|
},
|
|
"terminationGracePeriodSeconds": 30,
|
|
"volumes": [
|
|
{
|
|
"name": "data",
|
|
"persistentVolumeClaim": {
|
|
"claimName": "presentations-web-data"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|