homeassistant.yaml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  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: traefik.containo.us/v1alpha1
  59. kind: IngressRoute
  60. metadata:
  61. name: homeassistant
  62. namespace: homeassistant
  63. spec:
  64. entryPoints:
  65. - websecure
  66. routes:
  67. - kind: Rule
  68. match: Host(`homeassistant.jibby.org`)
  69. services:
  70. - kind: Service
  71. name: homeassistant-service
  72. port: 8123
  73. ---
  74. apiVersion: apps/v1
  75. kind: Deployment
  76. metadata:
  77. name: whisper
  78. namespace: homeassistant
  79. spec:
  80. strategy:
  81. type: Recreate
  82. selector:
  83. matchLabels:
  84. app: whisper
  85. replicas: 1
  86. template:
  87. metadata:
  88. labels:
  89. app: whisper
  90. annotations:
  91. backup.velero.io/backup-volumes-excludes: tmpfs
  92. spec:
  93. affinity:
  94. nodeAffinity:
  95. requiredDuringSchedulingIgnoredDuringExecution:
  96. nodeSelectorTerms:
  97. - matchExpressions:
  98. - key: cluster-ingress
  99. operator: In
  100. values:
  101. - "true"
  102. hostNetwork: true
  103. containers:
  104. - name: homeassistant
  105. image: rhasspy/wyoming-whisper
  106. args:
  107. - --model
  108. - base-int8
  109. - --language
  110. - en
  111. ports:
  112. - containerPort: 10300
  113. name: http-web-svc
  114. volumeMounts:
  115. - mountPath: "/data"
  116. name: tmpfs
  117. volumes:
  118. - name: tmpfs
  119. emptyDir:
  120. medium: Memory
  121. sizeLimit: 2Gi
  122. ---
  123. apiVersion: apps/v1
  124. kind: Deployment
  125. metadata:
  126. name: piper
  127. namespace: homeassistant
  128. spec:
  129. strategy:
  130. type: Recreate
  131. selector:
  132. matchLabels:
  133. app: piper
  134. replicas: 1
  135. template:
  136. metadata:
  137. labels:
  138. app: piper
  139. annotations:
  140. backup.velero.io/backup-volumes-excludes: tmpfs
  141. spec:
  142. affinity:
  143. nodeAffinity:
  144. requiredDuringSchedulingIgnoredDuringExecution:
  145. nodeSelectorTerms:
  146. - matchExpressions:
  147. - key: cluster-ingress
  148. operator: In
  149. values:
  150. - "true"
  151. hostNetwork: true
  152. containers:
  153. - name: homeassistant
  154. image: rhasspy/wyoming-piper
  155. args:
  156. - --voice
  157. - en_US-lessac-high
  158. ports:
  159. - containerPort: 10200
  160. name: http-web-svc
  161. volumeMounts:
  162. - mountPath: "/data"
  163. name: tmpfs
  164. volumes:
  165. - name: tmpfs
  166. emptyDir:
  167. medium: Memory
  168. sizeLimit: 2Gi
  169. ---
  170. apiVersion: apps/v1
  171. kind: Deployment
  172. metadata:
  173. name: openwakeword
  174. namespace: homeassistant
  175. spec:
  176. strategy:
  177. type: Recreate
  178. selector:
  179. matchLabels:
  180. app: openwakeword
  181. replicas: 1
  182. template:
  183. metadata:
  184. labels:
  185. app: openwakeword
  186. annotations:
  187. backup.velero.io/backup-volumes-excludes: tmpfs
  188. spec:
  189. affinity:
  190. nodeAffinity:
  191. requiredDuringSchedulingIgnoredDuringExecution:
  192. nodeSelectorTerms:
  193. - matchExpressions:
  194. - key: cluster-ingress
  195. operator: In
  196. values:
  197. - "true"
  198. hostNetwork: true
  199. containers:
  200. - name: homeassistant
  201. image: rhasspy/wyoming-openwakeword
  202. args:
  203. - --preload-model
  204. - hey_jarvis
  205. - --custom-model-dir
  206. - /custom
  207. ports:
  208. - containerPort: 10400
  209. name: http-web-svc
  210. volumeMounts:
  211. - mountPath: "/custom"
  212. name: tmpfs
  213. volumes:
  214. - name: tmpfs
  215. emptyDir:
  216. medium: Memory
  217. sizeLimit: 2Gi
  218. ---
  219. apiVersion: apps/v1
  220. kind: Deployment
  221. metadata:
  222. name: mosquitto
  223. namespace: homeassistant
  224. spec:
  225. strategy:
  226. type: Recreate
  227. selector:
  228. matchLabels:
  229. app: mosquitto
  230. replicas: 1
  231. template:
  232. metadata:
  233. labels:
  234. app: mosquitto
  235. spec:
  236. affinity:
  237. nodeAffinity:
  238. requiredDuringSchedulingIgnoredDuringExecution:
  239. nodeSelectorTerms:
  240. - matchExpressions:
  241. - key: cluster-ingress
  242. operator: In
  243. values:
  244. - "true"
  245. hostNetwork: true
  246. containers:
  247. - name: homeassistant
  248. image: eclipse-mosquitto:2.0.18
  249. ports:
  250. - containerPort: 1883
  251. name: noenc-noauth
  252. volumeMounts:
  253. - name: config
  254. mountPath: /mosquitto/config
  255. readOnly: true
  256. volumes:
  257. - name: config
  258. configMap:
  259. name: mosquitto
  260. items:
  261. - key: mosquitto.conf
  262. path: mosquitto.conf
  263. ---
  264. apiVersion: v1
  265. kind: ConfigMap
  266. metadata:
  267. name: mosquitto
  268. namespace: homeassistant
  269. data:
  270. mosquitto.conf: |
  271. listener 1883
  272. allow_anonymous true