300 lines
9.3 KiB
JSON
300 lines
9.3 KiB
JSON
{
|
|
"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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|