apiVersion: v1 kind: PersistentVolumeClaim metadata: name: rustdesk labels: app.kubernetes.io/name: rustdesk app.kubernetes.io/component: rustdesk app.kubernetes.io/part-of: rustdesk spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: Service metadata: name: rustdesk labels: app.kubernetes.io/name: rustdesk app.kubernetes.io/component: rustdesk app.kubernetes.io/part-of: rustdesk spec: selector: app.kubernetes.io/name: rustdesk app.kubernetes.io/component: rustdesk ports: - port: 21115 name: nat-t - port: 21116 name: hbbs-tcp protocol: TCP - port: 21116 name: hbbs-udp protocol: UDP - port: 21118 name: hbbs-web - port: 21117 name: hbbr - port: 21119 name: hbbr-web --- apiVersion: apps/v1 kind: StatefulSet metadata: name: rustdesk labels: app.kubernetes.io/name: rustdesk app.kubernetes.io/component: rustdesk app.kubernetes.io/part-of: rustdesk spec: selector: matchLabels: app.kubernetes.io/name: rustdesk app.kubernetes.io/component: rustdesk serviceName: rustdesk template: metadata: labels: app.kubernetes.io/name: rustdesk app.kubernetes.io/component: rustdesk app.kubernetes.io/part-of: rustdesk spec: containers: - name: hbbs image: docker.io/rustdesk/rustdesk-server imagePullPolicy: IfNotPresent args: - hbbs env: &env - name: XDG_CONFIG_HOME value: /etc - name: XDG_DATA_HOME value: /var/lib/rustdesk workingDir: &dir /var/lib/rustdesk ports: - containerPort: 21115 name: nat-t - containerPort: 21116 name: hbbs-tcp protocol: TCP - containerPort: 21116 name: hbbs-udp protocol: UDP - containerPort: 21118 name: hbbs-web securityContext: readOnlyRootFilesystem: true volumeMounts: &mounts - mountPath: /etc/rustdesk name: rustdesk-data subPath: config - mountPath: /var/lib/rustdesk name: rustdesk-data subPath: data - name: hbbr image: docker.io/rustdesk/rustdesk-server imagePullPolicy: IfNotPresent env: *env workingDir: *dir args: - hbbr ports: - containerPort: 21117 name: hbbr - containerPort: 21119 name: hbbr-web securityContext: readOnlyRootFilesystem: true volumeMounts: *mounts securityContext: runAsNonRoot: true runAsUser: 21115 runAsGroup: 21115 fsGroup: 21115 volumes: - name: rustdesk-data persistentVolumeClaim: claimName: rustdesk