diff --git a/kubernetes/homeassistant/ha-dep.yml b/kubernetes/homeassistant/0-ha-dep.yml similarity index 100% rename from kubernetes/homeassistant/ha-dep.yml rename to kubernetes/homeassistant/0-ha-dep.yml diff --git a/kubernetes/homeassistant/1-zwave-dep.yml b/kubernetes/homeassistant/1-zwave-dep.yml new file mode 100644 index 0000000..1976e2c --- /dev/null +++ b/kubernetes/homeassistant/1-zwave-dep.yml @@ -0,0 +1,74 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: zwave-js-ui + namespace: homeassistant +spec: + replicas: 1 + selector: + matchLabels: + app: zwave-js-ui + template: + metadata: + labels: + app: zwave-js-ui + spec: + hostNetwork: true + containers: + - name: zwave-js-ui + image: zwavejs/zwave-js-ui:latest + imagePullPolicy: Always + tty: true + env: + - name: SESSION_SECRET + value: "iqpwoeinf9384bw3p48gbwer" + - name: TZ + value: "America/Denver" + volumeMounts: + - name: zwave-data + mountPath: /usr/src/app/store + - name: zwave-device-if00 + mountPath: /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_31500417-if00-port0 + - name: zwave-device-if01 + mountPath: /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_31500417-if01-port0 + securityContext: + privileged: true + ports: + - containerPort: 8091 + name: http + - containerPort: 3051 + name: websocket + volumes: + - name: zwave-data + hostPath: + path: /data/zwave + type: DirectoryOrCreate + - name: zwave-device-if00 + hostPath: + path: /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_31500417-if00-port0 + type: CharDevice + - name: zwave-device-if01 + hostPath: + path: /dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_31500417-if01-port0 + type: CharDevice +--- +apiVersion: v1 +kind: Service +metadata: + name: zwave-js-ui + namespace: homeassistant + annotations: + tailscale.com/expose: "true" +spec: + selector: + app: zwave-js-ui + ports: + - name: http + protocol: TCP + port: 8091 + targetPort: 8091 + - name: websocket + protocol: TCP + port: 3051 + targetPort: 3051 +--- diff --git a/kubernetes/minecraft/minecraft-dep.yml b/kubernetes/minecraft/minecraft-dep.yml new file mode 100644 index 0000000..6891f00 --- /dev/null +++ b/kubernetes/minecraft/minecraft-dep.yml @@ -0,0 +1,96 @@ +# apiVersion: v1 +# kind: Namespace +# metadata: +# name: minecraft +# --- +# apiVersion: apps/v1 +# kind: Deployment +# metadata: +# name: minecraft +# namespace: minecraft +# spec: +# replicas: 1 +# selector: +# matchLabels: +# app: minecraft +# template: +# metadata: +# labels: +# app: minecraft +# spec: +# containers: +# - name: tailscale +# image: tailscale/tailscale:latest +# env: +# - name: TS_STATE_DIR +# value: "/var/lib/tailscale" +# - name: TS_AUTHKEY +# value: "tskey-auth-REPLACE_ME" +# - name: TS_HOSTNAME +# value: "minecraft" +# volumeMounts: +# - name: tailscale-data +# mountPath: /var/lib/tailscale +# - name: dev-tun +# mountPath: /dev/net/tun +# securityContext: +# capabilities: +# add: +# - NET_ADMIN +# - SYS_MODULE +# - name: minecraft +# image: itzg/minecraft-server:java21 +# stdin: true +# tty: true +# env: +# - name: EULA +# value: "true" +# - name: MEMORY +# value: "6G" +# - name: CF_OVERRIDES_EXCLUSIONS +# value: | +# # Not applicable for server side +# shaderpacks/** +# volumeMounts: +# - name: minecraft-data +# mountPath: /data +# - name: modpacks +# mountPath: /modpacks +# readOnly: true +# resources: +# requests: +# memory: "6Gi" +# limits: +# memory: "8Gi" +# volumes: +# - name: minecraft-data +# hostPath: +# path: /data/minecraft/data +# type: DirectoryOrCreate +# - name: modpacks +# hostPath: +# path: /data/minecraft/modpacks +# type: DirectoryOrCreate +# - name: tailscale-data +# hostPath: +# path: /data/minecraft/tailscale-data +# type: DirectoryOrCreate +# - name: dev-tun +# hostPath: +# path: /dev/net/tun +# type: CharDevice +# --- +# # apiVersion: v1 +# # kind: Service +# # metadata: +# # name: minecraft +# # namespace: minecraft +# # spec: +# # selector: +# # app: minecraft +# # ports: +# # - name: minecraft +# # protocol: TCP +# # port: 25565 +# # targetPort: 25565 +# # type: ClusterIP