{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app": "fc-media-web", "app.kubernetes.io/name": "fc-media-web", "app.kubernetes.io/part-of": "flowercore" }, "name": "fc-media-web", "namespace": "fc-media" }, "spec": { "progressDeadlineSeconds": 600, "replicas": 1, "revisionHistoryLimit": 10, "selector": { "matchLabels": { "app": "fc-media-web" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "annotations": { "flowercore.io/healthz-auth-policy": "allow-anonymous", "kubectl.kubernetes.io/restartedAt": "2026-04-05T14:14:28-05:00", "prometheus.io/path": "/metrics", "prometheus.io/port": "5200", "prometheus.io/scrape": "true" }, "labels": { "app": "fc-media-web", "app.kubernetes.io/name": "fc-media-web", "app.kubernetes.io/part-of": "flowercore" } }, "spec": { "containers": [ { "env": [ { "name": "ASPNETCORE_ENVIRONMENT", "value": "Production" }, { "name": "ASPNETCORE_URLS", "value": "http://+:5200" }, { "name": "FlowerCore__Auth__Enabled", "value": "true" }, { "name": "FlowerCore__Auth__Oidc__Enabled", "value": "true" }, { "name": "FlowerCore__Auth__Oidc__Audience", "value": "media" }, { "name": "FlowerCore__Auth__Oidc__ClientId", "valueFrom": { "secretKeyRef": { "key": "client_id", "name": "media-oidc-client", "optional": true } } }, { "name": "FlowerCore__Auth__Oidc__ClientSecret", "valueFrom": { "secretKeyRef": { "key": "client_secret", "name": "media-oidc-client", "optional": true } } }, { "name": "FlowerCore__Auth__Oidc__Authority", "valueFrom": { "secretKeyRef": { "key": "issuer_url", "name": "media-oidc-client", "optional": true } } } ], "image": "localhost/fc-media-web:v20260617-sec5-media-f9228d2", "imagePullPolicy": "Never", "livenessProbe": { "failureThreshold": 3, "httpGet": { "httpHeaders": [ { "name": "X-Forwarded-Proto", "value": "https" } ], "path": "/healthz", "port": 5200, "scheme": "HTTP" }, "initialDelaySeconds": 30, "periodSeconds": 30, "successThreshold": 1, "timeoutSeconds": 1 }, "name": "fc-media-web", "ports": [ { "containerPort": 5200, "name": "http", "protocol": "TCP" } ], "readinessProbe": { "failureThreshold": 3, "httpGet": { "httpHeaders": [ { "name": "X-Forwarded-Proto", "value": "https" } ], "path": "/healthz", "port": 5200, "scheme": "HTTP" }, "initialDelaySeconds": 5, "periodSeconds": 10, "successThreshold": 1, "timeoutSeconds": 1 }, "resources": { "limits": { "cpu": "4", "memory": "4Gi" }, "requests": { "cpu": "500m", "memory": "1Gi" } }, "securityContext": { "allowPrivilegeEscalation": false, "capabilities": { "drop": [ "ALL" ] }, "readOnlyRootFilesystem": true }, "startupProbe": { "failureThreshold": 18, "httpGet": { "httpHeaders": [ { "name": "X-Forwarded-Proto", "value": "https" } ], "path": "/healthz", "port": 5200, "scheme": "HTTP" }, "periodSeconds": 10, "successThreshold": 1, "timeoutSeconds": 1 }, "terminationMessagePath": "/dev/termination-log", "terminationMessagePolicy": "File", "volumeMounts": [ { "mountPath": "/app/appsettings.Production.json", "name": "config", "readOnly": true, "subPath": "appsettings.Production.json" }, { "mountPath": "/data", "name": "data" }, { "mountPath": "/data/transcodes", "name": "transcodes" }, { "mountPath": "/media/library", "name": "media-library", "readOnly": true }, { "mountPath": "/media/inbox", "name": "media-inbox" }, { "mountPath": "/tmp", "name": "temp" }, { "mountPath": "/app/logs", "name": "logs" } ] } ], "dnsPolicy": "ClusterFirst", "restartPolicy": "Always", "schedulerName": "default-scheduler", "securityContext": { "fsGroup": 1654, "fsGroupChangePolicy": "OnRootMismatch", "runAsGroup": 1654, "runAsNonRoot": true, "runAsUser": 1654 }, "terminationGracePeriodSeconds": 30, "volumes": [ { "configMap": { "defaultMode": 420, "name": "fc-media-config" }, "name": "config" }, { "name": "data", "persistentVolumeClaim": { "claimName": "fc-media-data" } }, { "name": "transcodes", "nfs": { "path": "/volume1/kubernetes/fc-media-transcodes", "server": "10.0.58.3" } }, { "name": "media-inbox", "nfs": { "path": "/volume1/kubernetes/fc-media-inbox", "server": "10.0.58.3" } }, { "name": "media-library", "nfs": { "path": "/volume1/video", "readOnly": true, "server": "10.0.58.3" } }, { "emptyDir": {}, "name": "temp" }, { "emptyDir": {}, "name": "logs" } ] } } } }