apiVersion: v1 kind: PersistentVolumeClaim metadata: name: windows-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 64Gi --- apiVersion: v1 kind: Pod metadata: name: windows labels: name: windows spec: terminationGracePeriodSeconds: 120 # the Kubernetes default is 30 seconds and it may be not enough containers: - name: windows image: dockurr/windows ports: - containerPort: 8006 protocol: TCP - containerPort: 3389 protocol: TCP - containerPort: 3389 protocol: UDP securityContext: capabilities: add: - NET_ADMIN privileged: true env: - name: VERSION value: "11" - name: RAM_SIZE value: "4G" - name: CPU_CORES value: "2" - name: DISK_SIZE value: "64G" volumeMounts: - mountPath: /storage name: storage - mountPath: /dev/kvm name: dev-kvm - mountPath: /dev/net/tun name: dev-tun volumes: - name: storage persistentVolumeClaim: claimName: windows-pvc - name: dev-kvm hostPath: path: /dev/kvm - name: dev-tun hostPath: path: /dev/net/tun type: CharDevice --- apiVersion: v1 kind: Service metadata: name: windows spec: type: NodePort selector: name: windows ports: - name: tcp-8006 protocol: TCP port: 8006 targetPort: 8006 - name: tcp-3389 protocol: TCP port: 3389 targetPort: 3389 - name: udp-3389 protocol: UDP port: 3389 targetPort: 3389