{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app": "kiosk-web", "app.kubernetes.io/component": "web", "app.kubernetes.io/instance": "kiosk-web", "app.kubernetes.io/managed-by": "flowercore-kiosk", "app.kubernetes.io/name": "kiosk-web", "component": "web", "flowercore.io/created-by": "kiosk-fleshing-out-phase-2", "flowercore.io/tenant-id": "default", "project": "flowercore-kiosk" }, "name": "kiosk-web", "namespace": "fc-system" }, "spec": { "progressDeadlineSeconds": 600, "replicas": 1, "revisionHistoryLimit": 10, "selector": { "matchLabels": { "app": "kiosk-web" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "annotations": { "kubectl.kubernetes.io/restartedAt": "2026-05-06T21:21:19-05:00" }, "labels": { "app": "kiosk-web", "app.kubernetes.io/component": "web", "app.kubernetes.io/instance": "kiosk-web", "app.kubernetes.io/managed-by": "flowercore-kiosk", "app.kubernetes.io/name": "kiosk-web", "component": "web", "flowercore.io/created-by": "kiosk-fleshing-out-phase-2", "flowercore.io/tenant-id": "default", "project": "flowercore-kiosk" } }, "spec": { "containers": [ { "env": [ { "name": "ASPNETCORE_URLS", "value": "http://+:8080" }, { "name": "ASPNETCORE_ENVIRONMENT", "value": "Production" }, { "name": "Security__ApiKeys__0", "valueFrom": { "secretKeyRef": { "key": "BrowserBypassApiKey", "name": "kiosk-web-api-keys" } } }, { "name": "Security__AdminApiKeys__0", "valueFrom": { "secretKeyRef": { "key": "AdminApiKey", "name": "kiosk-web-api-keys" } } }, { "name": "Security__AgentApiKeys__0", "valueFrom": { "secretKeyRef": { "key": "AgentApiKey", "name": "kiosk-web-api-keys" } } }, { "name": "FlowerCore__Kiosk__Profiles__Backend", "value": "K8s" }, { "name": "FlowerCore__Kiosk__Profiles__LonghornRoot", "value": "/var/lib/flowercore/kiosk/profiles/data" }, { "name": "FlowerCore__PrintWeb__Url", "value": "http://10.0.57.16:5200" }, { "name": "FlowerCore__PrintWeb__ApiKey", "valueFrom": { "secretKeyRef": { "key": "PrintWebApiKey", "name": "kiosk-web-api-keys" } } } ], "image": "localhost/fc-kiosk-web:gx10-v1", "imagePullPolicy": "Never", "livenessProbe": { "failureThreshold": 6, "httpGet": { "path": "/health", "port": 8080, "scheme": "HTTP" }, "initialDelaySeconds": 120, "periodSeconds": 20, "successThreshold": 1, "timeoutSeconds": 5 }, "name": "kiosk-web", "ports": [ { "containerPort": 8080, "name": "http", "protocol": "TCP" } ], "readinessProbe": { "failureThreshold": 3, "httpGet": { "path": "/health", "port": 8080, "scheme": "HTTP" }, "initialDelaySeconds": 45, "periodSeconds": 10, "successThreshold": 1, "timeoutSeconds": 5 }, "resources": { "limits": { "cpu": "1", "memory": "512Mi" }, "requests": { "cpu": "250m", "memory": "256Mi" } }, "securityContext": { "allowPrivilegeEscalation": false, "capabilities": { "drop": [ "ALL" ] }, "readOnlyRootFilesystem": true }, "terminationMessagePath": "/dev/termination-log", "terminationMessagePolicy": "File", "volumeMounts": [ { "mountPath": "/app/data", "name": "data" }, { "mountPath": "/tmp", "name": "tmp" }, { "mountPath": "/app/logs", "name": "logs" }, { "mountPath": "/var/lib/flowercore/kiosk/profiles", "name": "user-profiles" }, { "mountPath": "/app/appsettings.Production.json", "name": "appsettings-production", "readOnly": true, "subPath": "appsettings.Production.json" } ] } ], "dnsPolicy": "ClusterFirst", "initContainers": [ { "command": [ "sh", "-c", "mkdir -p /profiles/data && chown -R 1654:1654 /profiles/data && chmod -R u+rwX,g+rwX /profiles/data" ], "image": "localhost/fc-kiosk-web:gx10-v1", "imagePullPolicy": "Never", "name": "fix-profile-perms", "resources": {}, "securityContext": { "allowPrivilegeEscalation": false, "capabilities": { "add": [ "CHOWN", "FOWNER" ], "drop": [ "ALL" ] }, "runAsGroup": 0, "runAsNonRoot": false, "runAsUser": 0 }, "terminationMessagePath": "/dev/termination-log", "terminationMessagePolicy": "File", "volumeMounts": [ { "mountPath": "/profiles", "name": "user-profiles" } ] } ], "restartPolicy": "Always", "schedulerName": "default-scheduler", "securityContext": { "fsGroup": 1654, "fsGroupChangePolicy": "OnRootMismatch", "runAsGroup": 1654, "runAsNonRoot": true, "runAsUser": 1654 }, "terminationGracePeriodSeconds": 30, "volumes": [ { "name": "data", "persistentVolumeClaim": { "claimName": "kiosk-web-data" } }, { "emptyDir": {}, "name": "tmp" }, { "emptyDir": {}, "name": "logs" }, { "name": "user-profiles", "persistentVolumeClaim": { "claimName": "kiosk-user-profiles" } }, { "configMap": { "defaultMode": 420, "items": [ { "key": "appsettings.Production.json", "path": "appsettings.Production.json" } ], "name": "kiosk-web-config" }, "name": "appsettings-production" } ] } } } }