homeassistant.yaml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. ---
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. name: homeassistant
  6. namespace: homeassistant
  7. spec:
  8. strategy:
  9. type: Recreate
  10. selector:
  11. matchLabels:
  12. app: homeassistant
  13. replicas: 1
  14. template:
  15. metadata:
  16. labels:
  17. app: homeassistant
  18. spec:
  19. affinity:
  20. nodeAffinity:
  21. requiredDuringSchedulingIgnoredDuringExecution:
  22. nodeSelectorTerms:
  23. - matchExpressions:
  24. - key: cluster-ingress
  25. operator: In
  26. values:
  27. - "true"
  28. hostNetwork: true
  29. containers:
  30. - name: homeassistant
  31. image: homeassistant/home-assistant:2023.10.1
  32. ports:
  33. - containerPort: 8123
  34. name: http-web-svc
  35. volumeMounts:
  36. - mountPath: "/config"
  37. name: data
  38. volumes:
  39. - name: data
  40. persistentVolumeClaim:
  41. claimName: homeassistant-pvc
  42. ---
  43. apiVersion: v1
  44. kind: Service
  45. metadata:
  46. name: homeassistant-service
  47. namespace: homeassistant
  48. spec:
  49. selector:
  50. app: homeassistant
  51. type: ClusterIP
  52. ports:
  53. - name: homeassistant-web-port
  54. protocol: TCP
  55. port: 8123
  56. targetPort: http-web-svc
  57. ---
  58. apiVersion: apps/v1
  59. kind: Deployment
  60. metadata:
  61. name: whisper
  62. namespace: homeassistant
  63. spec:
  64. strategy:
  65. type: Recreate
  66. selector:
  67. matchLabels:
  68. app: whisper
  69. replicas: 1
  70. template:
  71. metadata:
  72. labels:
  73. app: whisper
  74. annotations:
  75. backup.velero.io/backup-volumes-excludes: tmpfs
  76. spec:
  77. affinity:
  78. nodeAffinity:
  79. requiredDuringSchedulingIgnoredDuringExecution:
  80. nodeSelectorTerms:
  81. - matchExpressions:
  82. - key: cluster-ingress
  83. operator: In
  84. values:
  85. - "true"
  86. hostNetwork: true
  87. containers:
  88. - name: homeassistant
  89. image: rhasspy/wyoming-whisper
  90. args:
  91. - --model
  92. - base-int8
  93. - --language
  94. - en
  95. ports:
  96. - containerPort: 10300
  97. name: http-web-svc
  98. volumeMounts:
  99. - mountPath: "/data"
  100. name: tmpfs
  101. volumes:
  102. - name: tmpfs
  103. emptyDir:
  104. medium: Memory
  105. sizeLimit: 2Gi
  106. ---
  107. apiVersion: apps/v1
  108. kind: Deployment
  109. metadata:
  110. name: piper
  111. namespace: homeassistant
  112. spec:
  113. strategy:
  114. type: Recreate
  115. selector:
  116. matchLabels:
  117. app: piper
  118. replicas: 1
  119. template:
  120. metadata:
  121. labels:
  122. app: piper
  123. annotations:
  124. backup.velero.io/backup-volumes-excludes: tmpfs
  125. spec:
  126. affinity:
  127. nodeAffinity:
  128. requiredDuringSchedulingIgnoredDuringExecution:
  129. nodeSelectorTerms:
  130. - matchExpressions:
  131. - key: cluster-ingress
  132. operator: In
  133. values:
  134. - "true"
  135. hostNetwork: true
  136. containers:
  137. - name: homeassistant
  138. image: rhasspy/wyoming-piper
  139. args:
  140. - --voice
  141. - en_US-lessac-high
  142. ports:
  143. - containerPort: 10200
  144. name: http-web-svc
  145. volumeMounts:
  146. - mountPath: "/data"
  147. name: tmpfs
  148. volumes:
  149. - name: tmpfs
  150. emptyDir:
  151. medium: Memory
  152. sizeLimit: 2Gi
  153. ---
  154. apiVersion: apps/v1
  155. kind: Deployment
  156. metadata:
  157. name: openwakeword
  158. namespace: homeassistant
  159. spec:
  160. strategy:
  161. type: Recreate
  162. selector:
  163. matchLabels:
  164. app: openwakeword
  165. replicas: 1
  166. template:
  167. metadata:
  168. labels:
  169. app: openwakeword
  170. annotations:
  171. backup.velero.io/backup-volumes-excludes: tmpfs
  172. spec:
  173. affinity:
  174. nodeAffinity:
  175. requiredDuringSchedulingIgnoredDuringExecution:
  176. nodeSelectorTerms:
  177. - matchExpressions:
  178. - key: cluster-ingress
  179. operator: In
  180. values:
  181. - "true"
  182. hostNetwork: true
  183. containers:
  184. - name: homeassistant
  185. image: rhasspy/wyoming-openwakeword
  186. args:
  187. - --preload-model
  188. - hey_jarvis
  189. - --custom-model-dir
  190. - /custom
  191. ports:
  192. - containerPort: 10400
  193. name: http-web-svc
  194. volumeMounts:
  195. - mountPath: "/custom"
  196. name: tmpfs
  197. volumes:
  198. - name: tmpfs
  199. emptyDir:
  200. medium: Memory
  201. sizeLimit: 2Gi
  202. ---
  203. apiVersion: apps/v1
  204. kind: Deployment
  205. metadata:
  206. name: mosquitto
  207. namespace: homeassistant
  208. spec:
  209. strategy:
  210. type: Recreate
  211. selector:
  212. matchLabels:
  213. app: mosquitto
  214. replicas: 1
  215. template:
  216. metadata:
  217. labels:
  218. app: mosquitto
  219. spec:
  220. affinity:
  221. nodeAffinity:
  222. requiredDuringSchedulingIgnoredDuringExecution:
  223. nodeSelectorTerms:
  224. - matchExpressions:
  225. - key: cluster-ingress
  226. operator: In
  227. values:
  228. - "true"
  229. hostNetwork: true
  230. containers:
  231. - name: homeassistant
  232. image: eclipse-mosquitto:2.0.18
  233. ports:
  234. - containerPort: 1883
  235. name: noenc-noauth
  236. volumeMounts:
  237. - name: config
  238. mountPath: /mosquitto/config
  239. readOnly: true
  240. volumes:
  241. - name: config
  242. configMap:
  243. name: mosquitto
  244. items:
  245. - key: mosquitto.conf
  246. path: mosquitto.conf
  247. ---
  248. apiVersion: v1
  249. kind: ConfigMap
  250. metadata:
  251. name: mosquitto
  252. namespace: homeassistant
  253. data:
  254. mosquitto.conf: |
  255. listener 1883
  256. allow_anonymous true