{ "apiVersion": "apps/v1", "kind": "Deployment", "metadata": { "labels": { "app.kubernetes.io/name": "remotedesktop-web", "app.kubernetes.io/part-of": "flowercore" }, "name": "remotedesktop-web", "namespace": "fc-desktop" }, "spec": { "progressDeadlineSeconds": 600, "replicas": 1, "revisionHistoryLimit": 10, "selector": { "matchLabels": { "app.kubernetes.io/name": "remotedesktop-web" } }, "strategy": { "type": "Recreate" }, "template": { "metadata": { "labels": { "app.kubernetes.io/name": "remotedesktop-web", "app.kubernetes.io/part-of": "flowercore" } }, "spec": { "containers": [ { "env": [ { "name": "ASPNETCORE_URLS", "value": "http://+:8080" }, { "name": "ASPNETCORE_ENVIRONMENT", "value": "Production" }, { "name": "FlowerCore__Database__ConnectionStrings__Sqlite", "value": "Data Source=/app/data/remotedesktop.db" }, { "name": "RemoteDesktop__Mode", "value": "Remote" }, { "name": "RemoteDesktop__EnableApiDocs", "value": "true" }, { "name": "RemoteDesktop__PoolWarmupEnabled", "value": "false" }, { "name": "RemoteDesktop__PoolWarmupIntervalSeconds", "value": "60" }, { "name": "RemoteDesktop__OrphanReconciler__Enabled", "value": "true" }, { "name": "RemoteDesktop__OrphanReconciler__IntervalSeconds", "value": "300" }, { "name": "RemoteDesktop__OrphanReconciler__GraceSeconds", "value": "600" }, { "name": "RemoteDesktop__Audit__Enabled", "value": "true" }, { "name": "RemoteDesktop__Audit__DualWrite", "value": "true" }, { "name": "RemoteDesktop__UserVolumeClaimInitializer", "value": "KubernetesExec" }, { "name": "RemoteDesktop__KubernetesNamespace", "value": "fc-desktop" }, { "name": "RemoteDesktop__GuacamoleUrl", "value": "http://guacamole.guacamole.svc.cluster.local.:8080/guacamole" }, { "name": "RemoteDesktop__GuacamolePublicUrl", "value": "https://desktop.iamworkin.lan/guacamole" }, { "name": "RemoteDesktop__GuacamoleAdminUser", "value": "guacadmin" }, { "name": "RemoteDesktop__GuacamoleJsonSecretKey", "valueFrom": { "secretKeyRef": { "key": "password", "name": "remotedesktop-guacamole-json-auth" } } }, { "name": "RemoteDesktop__TraefikClusterIp", "value": "10.43.234.103" }, { "name": "RemoteDesktop__TraefikHostAliases__0", "value": "chat.iamworkin.lan" }, { "name": "RemoteDesktop__TraefikHostAliases__1", "value": "desktop.iamworkin.lan" }, { "name": "RemoteDesktop__TraefikHostAliases__2", "value": "gitea.iamworkin.lan" }, { "name": "RemoteDesktop__TraefikHostAliases__3", "value": "intranet.iamworkin.lan" }, { "name": "RemoteDesktop__TraefikHostAliases__4", "value": "print.iamworkin.lan" }, { "name": "RemoteDesktop__TraefikHostAliases__5", "value": "selenium.iamworkin.lan" }, { "name": "RemoteDesktop__NfsServer", "value": "10.0.58.3" }, { "name": "RemoteDesktop__NfsBasePath", "value": "/volume1/kubernetes/remotedesktop/users" }, { "name": "RemoteDesktop__SessionRecordingBasePath", "value": "/var/lib/guacamole/recordings" }, { "name": "RemoteDesktop__MaxSessionsPerUser", "value": "3" }, { "name": "FlowerCore__Auth__Oidc__Authority", "valueFrom": { "secretKeyRef": { "key": "issuer_url", "name": "remotedesktop-oidc-client", "optional": true } } }, { "name": "FlowerCore__Auth__Oidc__ClientId", "valueFrom": { "secretKeyRef": { "key": "client_id", "name": "remotedesktop-oidc-client", "optional": true } } }, { "name": "FlowerCore__Auth__Oidc__ClientSecret", "valueFrom": { "secretKeyRef": { "key": "client_secret", "name": "remotedesktop-oidc-client", "optional": true } } }, { "name": "FlowerCore__Auth__Enabled", "value": "false" }, { "name": "FlowerCore__Auth__Oidc__Enabled", "value": "false" } ], "envFrom": [ { "secretRef": { "name": "remotedesktop-secrets", "optional": true } } ], "image": "localhost/fc-remotedesktop-web:gx10-v1", "imagePullPolicy": "IfNotPresent", "livenessProbe": { "failureThreshold": 3, "httpGet": { "path": "/health", "port": 8080, "scheme": "HTTP" }, "initialDelaySeconds": 15, "periodSeconds": 30, "successThreshold": 1, "timeoutSeconds": 1 }, "name": "web", "ports": [ { "containerPort": 8080, "name": "http", "protocol": "TCP" } ], "readinessProbe": { "failureThreshold": 3, "httpGet": { "path": "/health", "port": 8080, "scheme": "HTTP" }, "initialDelaySeconds": 5, "periodSeconds": 10, "successThreshold": 1, "timeoutSeconds": 1 }, "resources": { "limits": { "cpu": "500m", "memory": "512Mi" }, "requests": { "cpu": "100m", "memory": "256Mi" } }, "startupProbe": { "failureThreshold": 60, "httpGet": { "path": "/health", "port": 8080, "scheme": "HTTP" }, "periodSeconds": 10, "successThreshold": 1, "timeoutSeconds": 1 }, "terminationMessagePath": "/dev/termination-log", "terminationMessagePolicy": "File", "volumeMounts": [ { "mountPath": "/app/data", "name": "data" }, { "mountPath": "/var/lib/guacamole/recordings", "name": "recordings", "readOnly": true, "subPath": "guacamole/recordings" } ] } ], "dnsPolicy": "ClusterFirst", "restartPolicy": "Always", "schedulerName": "default-scheduler", "securityContext": {}, "serviceAccount": "remotedesktop-web", "serviceAccountName": "remotedesktop-web", "terminationGracePeriodSeconds": 30, "volumes": [ { "name": "data", "persistentVolumeClaim": { "claimName": "remotedesktop-data" } }, { "name": "recordings", "nfs": { "path": "/volume1/kubernetes", "server": "10.0.58.3" } } ] } } } }