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. selector:
  9. matchLabels:
  10. app: homeassistant
  11. replicas: 1
  12. template:
  13. metadata:
  14. labels:
  15. app: homeassistant
  16. spec:
  17. affinity:
  18. nodeAffinity:
  19. requiredDuringSchedulingIgnoredDuringExecution:
  20. nodeSelectorTerms:
  21. - matchExpressions:
  22. - key: cluster-ingress
  23. operator: In
  24. values:
  25. - "true"
  26. hostNetwork: true
  27. containers:
  28. - name: homeassistant
  29. image: homeassistant/home-assistant:2023.10.1
  30. ports:
  31. - containerPort: 8123
  32. name: http-web-svc
  33. volumeMounts:
  34. - mountPath: "/config"
  35. name: data
  36. volumes:
  37. - name: data
  38. persistentVolumeClaim:
  39. claimName: homeassistant-pvc
  40. ---
  41. apiVersion: v1
  42. kind: Service
  43. metadata:
  44. name: homeassistant-service
  45. namespace: homeassistant
  46. spec:
  47. selector:
  48. app: homeassistant
  49. type: ClusterIP
  50. ports:
  51. - name: homeassistant-web-port
  52. protocol: TCP
  53. port: 8123
  54. targetPort: http-web-svc
  55. ---
  56. apiVersion: traefik.containo.us/v1alpha1
  57. kind: IngressRoute
  58. metadata:
  59. name: homeassistant
  60. namespace: homeassistant
  61. spec:
  62. entryPoints:
  63. - websecure
  64. routes:
  65. - kind: Rule
  66. match: Host(`homeassistant.jibby.org`)
  67. services:
  68. - kind: Service
  69. name: homeassistant-service
  70. port: 8123
  71. ---
  72. apiVersion: apps/v1
  73. kind: Deployment
  74. metadata:
  75. name: whisper
  76. namespace: homeassistant
  77. spec:
  78. selector:
  79. matchLabels:
  80. app: whisper
  81. replicas: 1
  82. template:
  83. metadata:
  84. labels:
  85. app: whisper
  86. spec:
  87. affinity:
  88. nodeAffinity:
  89. requiredDuringSchedulingIgnoredDuringExecution:
  90. nodeSelectorTerms:
  91. - matchExpressions:
  92. - key: cluster-ingress
  93. operator: In
  94. values:
  95. - "true"
  96. hostNetwork: true
  97. containers:
  98. - name: homeassistant
  99. image: rhasspy/wyoming-whisper
  100. args:
  101. - --model
  102. - base-int8
  103. - --language
  104. - en
  105. ports:
  106. - containerPort: 10300
  107. name: http-web-svc
  108. volumeMounts:
  109. - mountPath: "/data"
  110. name: tmpfs
  111. volumes:
  112. - name: tmpfs
  113. emptyDir:
  114. medium: Memory
  115. sizeLimit: 2Gi
  116. ---
  117. apiVersion: apps/v1
  118. kind: Deployment
  119. metadata:
  120. name: piper
  121. namespace: homeassistant
  122. spec:
  123. selector:
  124. matchLabels:
  125. app: piper
  126. replicas: 1
  127. template:
  128. metadata:
  129. labels:
  130. app: piper
  131. spec:
  132. affinity:
  133. nodeAffinity:
  134. requiredDuringSchedulingIgnoredDuringExecution:
  135. nodeSelectorTerms:
  136. - matchExpressions:
  137. - key: cluster-ingress
  138. operator: In
  139. values:
  140. - "true"
  141. hostNetwork: true
  142. containers:
  143. - name: homeassistant
  144. image: rhasspy/wyoming-piper
  145. args:
  146. - --voice
  147. - en_US-lessac-high
  148. ports:
  149. - containerPort: 10200
  150. name: http-web-svc
  151. volumeMounts:
  152. - mountPath: "/data"
  153. name: tmpfs
  154. volumes:
  155. - name: tmpfs
  156. emptyDir:
  157. medium: Memory
  158. sizeLimit: 2Gi
  159. ---
  160. apiVersion: apps/v1
  161. kind: Deployment
  162. metadata:
  163. name: openwakeword
  164. namespace: homeassistant
  165. spec:
  166. selector:
  167. matchLabels:
  168. app: openwakeword
  169. replicas: 1
  170. template:
  171. metadata:
  172. labels:
  173. app: openwakeword
  174. spec:
  175. affinity:
  176. nodeAffinity:
  177. requiredDuringSchedulingIgnoredDuringExecution:
  178. nodeSelectorTerms:
  179. - matchExpressions:
  180. - key: cluster-ingress
  181. operator: In
  182. values:
  183. - "true"
  184. hostNetwork: true
  185. containers:
  186. - name: homeassistant
  187. image: rhasspy/wyoming-openwakeword
  188. args:
  189. - --preload-model
  190. - hey_jarvis
  191. - --custom-model-dir
  192. - /custom
  193. ports:
  194. - containerPort: 10400
  195. name: http-web-svc
  196. volumeMounts:
  197. - mountPath: "/custom"
  198. name: tmpfs
  199. volumes:
  200. - name: tmpfs
  201. emptyDir:
  202. medium: Memory
  203. sizeLimit: 2Gi
  204. ---
  205. apiVersion: apps/v1
  206. kind: Deployment
  207. metadata:
  208. name: mosquitto
  209. namespace: homeassistant
  210. spec:
  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