# FlowerCore.DeviceManagement Web. # # Source repo is expected to ship FlowerCore.DeviceManagement.Web in a later # Sprint 9+ lane. This manifest is static-valid without requiring the image to # exist yet; import localhost/fc-devicemgmt-web: to all schedulable RKE2 # nodes before letting ArgoCD sync a live rollout. # # LIVE — 2026-06-11 DeviceManagement product-host enablement. # The current DeviceManagement Web source is SQLite-backed in Program.cs, so # Phase 1 production uses a Longhorn RWO PVC at /data/devicemgmt.db. The # 1Password runtime item stays mounted through env for future MySQL/API-key # cutover, but MySQL is not required for this first product-host rollout. # Image v20260613-ollama-gateway is built from FlowerCore.DeviceManagement master # 6159e05, carrying the Ollama true-service Windows apply gateway. --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: fc-devicemgmt-web-data namespace: fc-devicemgmt labels: app: fc-devicemgmt-web app.kubernetes.io/name: fc-devicemgmt-web app.kubernetes.io/component: web app.kubernetes.io/part-of: flowercore app.kubernetes.io/managed-by: argocd flowercore.io/tenant-id: system flowercore.io/created-by: bluejay-infra spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: fc-devicemgmt-web namespace: fc-devicemgmt labels: app: fc-devicemgmt-web app.kubernetes.io/name: fc-devicemgmt-web app.kubernetes.io/component: web app.kubernetes.io/part-of: flowercore app.kubernetes.io/managed-by: argocd flowercore.io/tenant-id: system flowercore.io/created-by: bluejay-infra annotations: flowercore.io/traceability-standard: k8s-pod-ownership-and-traceability-standard spec: replicas: 1 revisionHistoryLimit: 3 strategy: type: RollingUpdate rollingUpdate: maxSurge: 0 maxUnavailable: 1 selector: matchLabels: app: fc-devicemgmt-web template: metadata: labels: app: fc-devicemgmt-web app.kubernetes.io/name: fc-devicemgmt-web app.kubernetes.io/component: web app.kubernetes.io/part-of: flowercore app.kubernetes.io/managed-by: argocd flowercore.io/tenant-id: system flowercore.io/created-by: bluejay-infra annotations: fc.flowercore.io/healthz-anon: "true" fc.flowercore.io/probe-path: "/healthz" prometheus.io/scrape: "true" prometheus.io/port: "8080" prometheus.io/path: "/metrics" flowercore.io/audit-trace-id: "runtime-activity-trace" spec: securityContext: fsGroup: 1654 fsGroupChangePolicy: OnRootMismatch containers: - name: web image: localhost/fc-devicemgmt-web:v20260613-ollama-gateway imagePullPolicy: Never ports: - name: http containerPort: 8080 # fc-safe-to-expose: X-Forwarded-Proto handled by AddFlowerCoreWebAuth (ADR-178) before any future public/OIDC flip. env: - name: ASPNETCORE_URLS value: "http://+:8080" - name: ASPNETCORE_ENVIRONMENT value: "Production" - name: DOTNET_SYSTEM_GLOBALIZATION_INVARIANT value: "false" - name: HOME value: "/data" - name: FlowerCore__Service__Name value: "FlowerCore.DeviceManagement.Web" - name: FlowerCore__DeviceManagement__DefaultTenantId value: "system" - name: FlowerCore__Database__Provider value: "Sqlite" - name: FlowerCore__Database__ConnectionStrings__Sqlite value: "Data Source=/data/devicemgmt.db" - name: FlowerCore__Database__Password valueFrom: secretKeyRef: name: fc-devicemgmt-runtime key: DB-Password - name: FlowerCore__EventBus__Redis__Configuration value: "redis.fc-redis.svc:6379" resources: requests: cpu: 100m memory: 256Mi limits: cpu: 1000m memory: 768Mi startupProbe: tcpSocket: port: 8080 initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 30 readinessProbe: tcpSocket: port: 8080 periodSeconds: 10 failureThreshold: 3 livenessProbe: tcpSocket: port: 8080 initialDelaySeconds: 30 periodSeconds: 30 failureThreshold: 3 securityContext: runAsNonRoot: true runAsUser: 1654 runAsGroup: 1654 allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: - ALL volumeMounts: - name: data mountPath: /data - name: tmp mountPath: /tmp - name: logs mountPath: /app/logs volumes: - name: data persistentVolumeClaim: claimName: fc-devicemgmt-web-data - name: tmp emptyDir: {} - name: logs emptyDir: {}