homeassistant.yaml 5.6 KB

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