@reyemtech/nimbus 1.3.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (702) hide show
  1. package/README.md +32 -28
  2. package/dist/cjs/access/dns.d.ts +26 -0
  3. package/dist/cjs/access/dns.d.ts.map +1 -0
  4. package/dist/cjs/access/dns.js +136 -0
  5. package/dist/cjs/access/dns.js.map +1 -0
  6. package/dist/cjs/access/index.d.ts +30 -0
  7. package/dist/cjs/access/index.d.ts.map +1 -0
  8. package/dist/cjs/access/index.js +45 -0
  9. package/dist/cjs/access/index.js.map +1 -0
  10. package/dist/cjs/access/interfaces.d.ts +97 -0
  11. package/dist/cjs/access/interfaces.d.ts.map +1 -0
  12. package/dist/cjs/access/interfaces.js +17 -0
  13. package/dist/cjs/access/interfaces.js.map +1 -0
  14. package/dist/cjs/access/proxy.d.ts +21 -0
  15. package/dist/cjs/access/proxy.d.ts.map +1 -0
  16. package/dist/cjs/access/proxy.js +155 -0
  17. package/dist/cjs/access/proxy.js.map +1 -0
  18. package/dist/cjs/access/tailscale-dns.d.ts +28 -0
  19. package/dist/cjs/access/tailscale-dns.d.ts.map +1 -0
  20. package/dist/cjs/access/tailscale-dns.js +131 -0
  21. package/dist/cjs/access/tailscale-dns.js.map +1 -0
  22. package/dist/cjs/access/tailscale.d.ts +14 -0
  23. package/dist/cjs/access/tailscale.d.ts.map +1 -0
  24. package/dist/cjs/access/tailscale.js +135 -0
  25. package/dist/cjs/access/tailscale.js.map +1 -0
  26. package/dist/cjs/access/wireguard.d.ts +14 -0
  27. package/dist/cjs/access/wireguard.d.ts.map +1 -0
  28. package/dist/cjs/access/wireguard.js +140 -0
  29. package/dist/cjs/access/wireguard.js.map +1 -0
  30. package/dist/cjs/argocd/app.d.ts +31 -0
  31. package/dist/cjs/argocd/app.d.ts.map +1 -0
  32. package/dist/cjs/argocd/app.js +194 -0
  33. package/dist/cjs/argocd/app.js.map +1 -0
  34. package/dist/cjs/argocd/argocd.d.ts +33 -0
  35. package/dist/cjs/argocd/argocd.d.ts.map +1 -0
  36. package/dist/cjs/argocd/argocd.js +182 -0
  37. package/dist/cjs/argocd/argocd.js.map +1 -0
  38. package/dist/cjs/argocd/external-secrets.d.ts +23 -0
  39. package/dist/cjs/argocd/external-secrets.d.ts.map +1 -0
  40. package/dist/cjs/argocd/external-secrets.js +121 -0
  41. package/dist/cjs/argocd/external-secrets.js.map +1 -0
  42. package/dist/cjs/argocd/index.d.ts +18 -0
  43. package/dist/cjs/argocd/index.d.ts.map +1 -0
  44. package/dist/cjs/argocd/index.js +27 -0
  45. package/dist/cjs/argocd/index.js.map +1 -0
  46. package/dist/cjs/argocd/interfaces.d.ts +144 -0
  47. package/dist/cjs/argocd/interfaces.d.ts.map +1 -0
  48. package/dist/cjs/argocd/interfaces.js +8 -0
  49. package/dist/cjs/argocd/interfaces.js.map +1 -0
  50. package/dist/cjs/argocd/project.d.ts +23 -0
  51. package/dist/cjs/argocd/project.d.ts.map +1 -0
  52. package/dist/cjs/argocd/project.js +93 -0
  53. package/dist/cjs/argocd/project.js.map +1 -0
  54. package/dist/cjs/argocd/repo.d.ts +15 -0
  55. package/dist/cjs/argocd/repo.d.ts.map +1 -0
  56. package/dist/cjs/argocd/repo.js +83 -0
  57. package/dist/cjs/argocd/repo.js.map +1 -0
  58. package/dist/cjs/argocd/secrets.d.ts +23 -0
  59. package/dist/cjs/argocd/secrets.d.ts.map +1 -0
  60. package/dist/cjs/argocd/secrets.js +87 -0
  61. package/dist/cjs/argocd/secrets.js.map +1 -0
  62. package/dist/cjs/backup/index.d.ts +20 -0
  63. package/dist/cjs/backup/index.d.ts.map +1 -0
  64. package/dist/cjs/backup/index.js +206 -0
  65. package/dist/cjs/backup/index.js.map +1 -0
  66. package/dist/cjs/backup/interfaces.d.ts +29 -0
  67. package/dist/cjs/backup/interfaces.d.ts.map +1 -0
  68. package/dist/cjs/backup/interfaces.js +3 -0
  69. package/dist/cjs/backup/interfaces.js.map +1 -0
  70. package/dist/cjs/cache/cache.d.ts +38 -0
  71. package/dist/cjs/cache/cache.d.ts.map +1 -0
  72. package/dist/cjs/cache/cache.js +189 -0
  73. package/dist/cjs/cache/cache.js.map +1 -0
  74. package/dist/cjs/cache/index.d.ts +2 -0
  75. package/dist/cjs/cache/index.d.ts.map +1 -1
  76. package/dist/cjs/cache/index.js +7 -0
  77. package/dist/cjs/cache/index.js.map +1 -1
  78. package/dist/cjs/cache/interfaces.d.ts +20 -0
  79. package/dist/cjs/cache/interfaces.d.ts.map +1 -1
  80. package/dist/cjs/cache/interfaces.js +18 -0
  81. package/dist/cjs/cache/interfaces.js.map +1 -1
  82. package/dist/cjs/cluster/index.d.ts +1 -1
  83. package/dist/cjs/cluster/index.d.ts.map +1 -1
  84. package/dist/cjs/cluster/interfaces.d.ts +18 -1
  85. package/dist/cjs/cluster/interfaces.d.ts.map +1 -1
  86. package/dist/cjs/database/index.d.ts +1 -0
  87. package/dist/cjs/database/index.d.ts.map +1 -1
  88. package/dist/cjs/database/index.js +5 -0
  89. package/dist/cjs/database/index.js.map +1 -1
  90. package/dist/cjs/database/interfaces.d.ts +19 -0
  91. package/dist/cjs/database/interfaces.d.ts.map +1 -1
  92. package/dist/cjs/database/interfaces.js +20 -0
  93. package/dist/cjs/database/interfaces.js.map +1 -1
  94. package/dist/cjs/dns/index.d.ts +1 -0
  95. package/dist/cjs/dns/index.d.ts.map +1 -1
  96. package/dist/cjs/dns/index.js +3 -0
  97. package/dist/cjs/dns/index.js.map +1 -1
  98. package/dist/cjs/dns/interfaces.d.ts +11 -0
  99. package/dist/cjs/dns/interfaces.d.ts.map +1 -1
  100. package/dist/cjs/dns/interfaces.js +12 -0
  101. package/dist/cjs/dns/interfaces.js.map +1 -1
  102. package/dist/cjs/email/index.d.ts +41 -0
  103. package/dist/cjs/email/index.d.ts.map +1 -0
  104. package/dist/cjs/email/index.js +318 -0
  105. package/dist/cjs/email/index.js.map +1 -0
  106. package/dist/cjs/email/interfaces.d.ts +119 -0
  107. package/dist/cjs/email/interfaces.d.ts.map +1 -0
  108. package/dist/cjs/email/interfaces.js +19 -0
  109. package/dist/cjs/email/interfaces.js.map +1 -0
  110. package/dist/cjs/factories/cluster.d.ts +1 -1
  111. package/dist/cjs/factories/cluster.d.ts.map +1 -1
  112. package/dist/cjs/factories/cluster.js +16 -0
  113. package/dist/cjs/factories/cluster.js.map +1 -1
  114. package/dist/cjs/factories/index.d.ts +1 -1
  115. package/dist/cjs/factories/index.d.ts.map +1 -1
  116. package/dist/cjs/factories/index.js.map +1 -1
  117. package/dist/cjs/factories/types.d.ts +26 -0
  118. package/dist/cjs/factories/types.d.ts.map +1 -1
  119. package/dist/cjs/factories/types.js.map +1 -1
  120. package/dist/cjs/index.d.ts +26 -5
  121. package/dist/cjs/index.d.ts.map +1 -1
  122. package/dist/cjs/index.js +72 -8
  123. package/dist/cjs/index.js.map +1 -1
  124. package/dist/cjs/network/index.d.ts +1 -0
  125. package/dist/cjs/network/index.d.ts.map +1 -1
  126. package/dist/cjs/network/index.js +3 -1
  127. package/dist/cjs/network/index.js.map +1 -1
  128. package/dist/cjs/network/interfaces.d.ts +6 -0
  129. package/dist/cjs/network/interfaces.d.ts.map +1 -1
  130. package/dist/cjs/network/interfaces.js +7 -0
  131. package/dist/cjs/network/interfaces.js.map +1 -1
  132. package/dist/cjs/nimbus/index.d.ts +28 -0
  133. package/dist/cjs/nimbus/index.d.ts.map +1 -0
  134. package/dist/cjs/nimbus/index.js +44 -0
  135. package/dist/cjs/nimbus/index.js.map +1 -0
  136. package/dist/cjs/nimbus/interfaces.d.ts +64 -0
  137. package/dist/cjs/nimbus/interfaces.d.ts.map +1 -0
  138. package/dist/cjs/nimbus/interfaces.js +10 -0
  139. package/dist/cjs/nimbus/interfaces.js.map +1 -0
  140. package/dist/cjs/nimbus/registry.d.ts +19 -0
  141. package/dist/cjs/nimbus/registry.d.ts.map +1 -0
  142. package/dist/cjs/nimbus/registry.js +123 -0
  143. package/dist/cjs/nimbus/registry.js.map +1 -0
  144. package/dist/cjs/observability/alerts.d.ts +51 -0
  145. package/dist/cjs/observability/alerts.d.ts.map +1 -0
  146. package/dist/cjs/observability/alerts.js +281 -0
  147. package/dist/cjs/observability/alerts.js.map +1 -0
  148. package/dist/cjs/observability/dashboards/_helpers.d.ts +38 -0
  149. package/dist/cjs/observability/dashboards/_helpers.d.ts.map +1 -0
  150. package/dist/cjs/observability/dashboards/_helpers.js +141 -0
  151. package/dist/cjs/observability/dashboards/_helpers.js.map +1 -0
  152. package/dist/cjs/observability/dashboards/alerts.d.ts +12 -0
  153. package/dist/cjs/observability/dashboards/alerts.d.ts.map +1 -0
  154. package/dist/cjs/observability/dashboards/alerts.js +261 -0
  155. package/dist/cjs/observability/dashboards/alerts.js.map +1 -0
  156. package/dist/cjs/observability/dashboards/argocd-app.d.ts +18 -0
  157. package/dist/cjs/observability/dashboards/argocd-app.d.ts.map +1 -0
  158. package/dist/cjs/observability/dashboards/argocd-app.js +212 -0
  159. package/dist/cjs/observability/dashboards/argocd-app.js.map +1 -0
  160. package/dist/cjs/observability/dashboards/argocd.d.ts +9 -0
  161. package/dist/cjs/observability/dashboards/argocd.d.ts.map +1 -0
  162. package/dist/cjs/observability/dashboards/argocd.js +141 -0
  163. package/dist/cjs/observability/dashboards/argocd.js.map +1 -0
  164. package/dist/cjs/observability/dashboards/cert-manager.d.ts +9 -0
  165. package/dist/cjs/observability/dashboards/cert-manager.d.ts.map +1 -0
  166. package/dist/cjs/observability/dashboards/cert-manager.js +167 -0
  167. package/dist/cjs/observability/dashboards/cert-manager.js.map +1 -0
  168. package/dist/cjs/observability/dashboards/cnpg-cluster.d.ts +15 -0
  169. package/dist/cjs/observability/dashboards/cnpg-cluster.d.ts.map +1 -0
  170. package/dist/cjs/observability/dashboards/cnpg-cluster.js +376 -0
  171. package/dist/cjs/observability/dashboards/cnpg-cluster.js.map +1 -0
  172. package/dist/cjs/observability/dashboards/cnpg.d.ts +10 -0
  173. package/dist/cjs/observability/dashboards/cnpg.d.ts.map +1 -0
  174. package/dist/cjs/observability/dashboards/cnpg.js +181 -0
  175. package/dist/cjs/observability/dashboards/cnpg.js.map +1 -0
  176. package/dist/cjs/observability/dashboards/index.d.ts +28 -0
  177. package/dist/cjs/observability/dashboards/index.d.ts.map +1 -0
  178. package/dist/cjs/observability/dashboards/index.js +159 -0
  179. package/dist/cjs/observability/dashboards/index.js.map +1 -0
  180. package/dist/cjs/observability/dashboards/loki.d.ts +9 -0
  181. package/dist/cjs/observability/dashboards/loki.d.ts.map +1 -0
  182. package/dist/cjs/observability/dashboards/loki.js +113 -0
  183. package/dist/cjs/observability/dashboards/loki.js.map +1 -0
  184. package/dist/cjs/observability/dashboards/mariadb-cluster.d.ts +15 -0
  185. package/dist/cjs/observability/dashboards/mariadb-cluster.d.ts.map +1 -0
  186. package/dist/cjs/observability/dashboards/mariadb-cluster.js +424 -0
  187. package/dist/cjs/observability/dashboards/mariadb-cluster.js.map +1 -0
  188. package/dist/cjs/observability/dashboards/mariadb.d.ts +10 -0
  189. package/dist/cjs/observability/dashboards/mariadb.d.ts.map +1 -0
  190. package/dist/cjs/observability/dashboards/mariadb.js +181 -0
  191. package/dist/cjs/observability/dashboards/mariadb.js.map +1 -0
  192. package/dist/cjs/observability/dashboards/minio.d.ts +9 -0
  193. package/dist/cjs/observability/dashboards/minio.d.ts.map +1 -0
  194. package/dist/cjs/observability/dashboards/minio.js +267 -0
  195. package/dist/cjs/observability/dashboards/minio.js.map +1 -0
  196. package/dist/cjs/observability/dashboards/neo4j-cluster.d.ts +16 -0
  197. package/dist/cjs/observability/dashboards/neo4j-cluster.d.ts.map +1 -0
  198. package/dist/cjs/observability/dashboards/neo4j-cluster.js +223 -0
  199. package/dist/cjs/observability/dashboards/neo4j-cluster.js.map +1 -0
  200. package/dist/cjs/observability/dashboards/neo4j.d.ts +9 -0
  201. package/dist/cjs/observability/dashboards/neo4j.d.ts.map +1 -0
  202. package/dist/cjs/observability/dashboards/neo4j.js +156 -0
  203. package/dist/cjs/observability/dashboards/neo4j.js.map +1 -0
  204. package/dist/cjs/observability/dashboards/redis.d.ts +9 -0
  205. package/dist/cjs/observability/dashboards/redis.d.ts.map +1 -0
  206. package/dist/cjs/observability/dashboards/redis.js +221 -0
  207. package/dist/cjs/observability/dashboards/redis.js.map +1 -0
  208. package/dist/cjs/observability/dashboards/traefik.d.ts +9 -0
  209. package/dist/cjs/observability/dashboards/traefik.d.ts.map +1 -0
  210. package/dist/cjs/observability/dashboards/traefik.js +387 -0
  211. package/dist/cjs/observability/dashboards/traefik.js.map +1 -0
  212. package/dist/cjs/observability/index.d.ts +10 -0
  213. package/dist/cjs/observability/index.d.ts.map +1 -0
  214. package/dist/cjs/observability/index.js +14 -0
  215. package/dist/cjs/observability/index.js.map +1 -0
  216. package/dist/cjs/observability/interfaces.d.ts +173 -0
  217. package/dist/cjs/observability/interfaces.d.ts.map +1 -0
  218. package/dist/cjs/observability/interfaces.js +11 -0
  219. package/dist/cjs/observability/interfaces.js.map +1 -0
  220. package/dist/cjs/observability/stack.d.ts +31 -0
  221. package/dist/cjs/observability/stack.d.ts.map +1 -0
  222. package/dist/cjs/observability/stack.js +523 -0
  223. package/dist/cjs/observability/stack.js.map +1 -0
  224. package/dist/cjs/operator/cnpg.d.ts +22 -0
  225. package/dist/cjs/operator/cnpg.d.ts.map +1 -0
  226. package/dist/cjs/operator/cnpg.js +412 -0
  227. package/dist/cjs/operator/cnpg.js.map +1 -0
  228. package/dist/cjs/operator/index.d.ts +48 -0
  229. package/dist/cjs/operator/index.d.ts.map +1 -0
  230. package/dist/cjs/operator/index.js +155 -0
  231. package/dist/cjs/operator/index.js.map +1 -0
  232. package/dist/cjs/operator/interfaces.d.ts +192 -0
  233. package/dist/cjs/operator/interfaces.d.ts.map +1 -0
  234. package/dist/cjs/operator/interfaces.js +20 -0
  235. package/dist/cjs/operator/interfaces.js.map +1 -0
  236. package/dist/cjs/operator/mariadb.d.ts +22 -0
  237. package/dist/cjs/operator/mariadb.d.ts.map +1 -0
  238. package/dist/cjs/operator/mariadb.js +389 -0
  239. package/dist/cjs/operator/mariadb.js.map +1 -0
  240. package/dist/cjs/operator/minio.d.ts +37 -0
  241. package/dist/cjs/operator/minio.d.ts.map +1 -0
  242. package/dist/cjs/operator/minio.js +364 -0
  243. package/dist/cjs/operator/minio.js.map +1 -0
  244. package/dist/cjs/operator/neo4j.d.ts +48 -0
  245. package/dist/cjs/operator/neo4j.d.ts.map +1 -0
  246. package/dist/cjs/operator/neo4j.js +431 -0
  247. package/dist/cjs/operator/neo4j.js.map +1 -0
  248. package/dist/cjs/platform/components/argocd.d.ts +9 -0
  249. package/dist/cjs/platform/components/argocd.d.ts.map +1 -0
  250. package/dist/cjs/platform/components/argocd.js +82 -0
  251. package/dist/cjs/platform/components/argocd.js.map +1 -0
  252. package/dist/cjs/platform/components/cert-manager.d.ts +9 -0
  253. package/dist/cjs/platform/components/cert-manager.d.ts.map +1 -0
  254. package/dist/cjs/platform/components/cert-manager.js +56 -0
  255. package/dist/cjs/platform/components/cert-manager.js.map +1 -0
  256. package/dist/cjs/platform/components/descheduler.d.ts +9 -0
  257. package/dist/cjs/platform/components/descheduler.d.ts.map +1 -0
  258. package/dist/cjs/platform/components/descheduler.js +67 -0
  259. package/dist/cjs/platform/components/descheduler.js.map +1 -0
  260. package/dist/cjs/platform/components/external-dns.d.ts +9 -0
  261. package/dist/cjs/platform/components/external-dns.d.ts.map +1 -0
  262. package/dist/cjs/platform/components/external-dns.js +83 -0
  263. package/dist/cjs/platform/components/external-dns.js.map +1 -0
  264. package/dist/cjs/platform/components/external-secrets.d.ts +9 -0
  265. package/dist/cjs/platform/components/external-secrets.d.ts.map +1 -0
  266. package/dist/cjs/platform/components/external-secrets.js +62 -0
  267. package/dist/cjs/platform/components/external-secrets.js.map +1 -0
  268. package/dist/cjs/platform/components/index.d.ts +17 -0
  269. package/dist/cjs/platform/components/index.d.ts.map +1 -0
  270. package/dist/cjs/platform/components/index.js +28 -0
  271. package/dist/cjs/platform/components/index.js.map +1 -0
  272. package/dist/cjs/platform/components/oauth2-proxy.d.ts +14 -0
  273. package/dist/cjs/platform/components/oauth2-proxy.d.ts.map +1 -0
  274. package/dist/cjs/platform/components/oauth2-proxy.js +80 -0
  275. package/dist/cjs/platform/components/oauth2-proxy.js.map +1 -0
  276. package/dist/cjs/platform/components/traefik.d.ts +9 -0
  277. package/dist/cjs/platform/components/traefik.d.ts.map +1 -0
  278. package/dist/cjs/platform/components/traefik.js +74 -0
  279. package/dist/cjs/platform/components/traefik.js.map +1 -0
  280. package/dist/cjs/platform/components/vault.d.ts +12 -0
  281. package/dist/cjs/platform/components/vault.d.ts.map +1 -0
  282. package/dist/cjs/platform/components/vault.js +474 -0
  283. package/dist/cjs/platform/components/vault.js.map +1 -0
  284. package/dist/cjs/platform/index.d.ts +2 -1
  285. package/dist/cjs/platform/index.d.ts.map +1 -1
  286. package/dist/cjs/platform/index.js +3 -1
  287. package/dist/cjs/platform/index.js.map +1 -1
  288. package/dist/cjs/platform/interfaces.d.ts +73 -1
  289. package/dist/cjs/platform/interfaces.d.ts.map +1 -1
  290. package/dist/cjs/platform/interfaces.js +8 -0
  291. package/dist/cjs/platform/interfaces.js.map +1 -1
  292. package/dist/cjs/platform/stack.d.ts +1 -1
  293. package/dist/cjs/platform/stack.d.ts.map +1 -1
  294. package/dist/cjs/platform/stack.js +363 -153
  295. package/dist/cjs/platform/stack.js.map +1 -1
  296. package/dist/cjs/queue/index.d.ts +1 -0
  297. package/dist/cjs/queue/index.d.ts.map +1 -1
  298. package/dist/cjs/queue/index.js +5 -0
  299. package/dist/cjs/queue/index.js.map +1 -1
  300. package/dist/cjs/queue/interfaces.d.ts +20 -0
  301. package/dist/cjs/queue/interfaces.d.ts.map +1 -1
  302. package/dist/cjs/queue/interfaces.js +21 -0
  303. package/dist/cjs/queue/interfaces.js.map +1 -1
  304. package/dist/cjs/rackspace/cluster.d.ts +30 -0
  305. package/dist/cjs/rackspace/cluster.d.ts.map +1 -0
  306. package/dist/cjs/rackspace/cluster.js +116 -0
  307. package/dist/cjs/rackspace/cluster.js.map +1 -0
  308. package/dist/cjs/rackspace/index.d.ts +7 -0
  309. package/dist/cjs/rackspace/index.d.ts.map +1 -0
  310. package/dist/cjs/rackspace/index.js +11 -0
  311. package/dist/cjs/rackspace/index.js.map +1 -0
  312. package/dist/cjs/secrets/index.d.ts +1 -0
  313. package/dist/cjs/secrets/index.d.ts.map +1 -1
  314. package/dist/cjs/secrets/index.js +3 -0
  315. package/dist/cjs/secrets/index.js.map +1 -1
  316. package/dist/cjs/secrets/interfaces.d.ts +7 -0
  317. package/dist/cjs/secrets/interfaces.d.ts.map +1 -1
  318. package/dist/cjs/secrets/interfaces.js +8 -0
  319. package/dist/cjs/secrets/interfaces.js.map +1 -1
  320. package/dist/cjs/state/index.d.ts +1 -0
  321. package/dist/cjs/state/index.d.ts.map +1 -1
  322. package/dist/cjs/state/index.js +3 -0
  323. package/dist/cjs/state/index.js.map +1 -1
  324. package/dist/cjs/state/interfaces.d.ts +6 -0
  325. package/dist/cjs/state/interfaces.d.ts.map +1 -1
  326. package/dist/cjs/state/interfaces.js +7 -0
  327. package/dist/cjs/state/interfaces.js.map +1 -1
  328. package/dist/cjs/types/cloud-target.d.ts +7 -0
  329. package/dist/cjs/types/cloud-target.d.ts.map +1 -1
  330. package/dist/cjs/types/cloud-target.js +9 -2
  331. package/dist/cjs/types/cloud-target.js.map +1 -1
  332. package/dist/cjs/types/exposed-service.d.ts +20 -0
  333. package/dist/cjs/types/exposed-service.d.ts.map +1 -0
  334. package/dist/cjs/types/exposed-service.js +8 -0
  335. package/dist/cjs/types/exposed-service.js.map +1 -0
  336. package/dist/cjs/types/index.d.ts +3 -1
  337. package/dist/cjs/types/index.d.ts.map +1 -1
  338. package/dist/cjs/types/index.js +5 -1
  339. package/dist/cjs/types/index.js.map +1 -1
  340. package/dist/cjs/types/storage-tiers.d.ts +26 -0
  341. package/dist/cjs/types/storage-tiers.d.ts.map +1 -0
  342. package/dist/cjs/types/storage-tiers.js +30 -0
  343. package/dist/cjs/types/storage-tiers.js.map +1 -0
  344. package/dist/cjs/utils/ensure-namespace.d.ts +7 -0
  345. package/dist/cjs/utils/ensure-namespace.d.ts.map +1 -0
  346. package/dist/cjs/utils/ensure-namespace.js +53 -0
  347. package/dist/cjs/utils/ensure-namespace.js.map +1 -0
  348. package/dist/cjs/utils/index.d.ts +1 -0
  349. package/dist/cjs/utils/index.d.ts.map +1 -1
  350. package/dist/cjs/utils/index.js +3 -1
  351. package/dist/cjs/utils/index.js.map +1 -1
  352. package/dist/esm/access/dns.d.ts +26 -0
  353. package/dist/esm/access/dns.d.ts.map +1 -0
  354. package/dist/esm/access/dns.js +136 -0
  355. package/dist/esm/access/dns.js.map +1 -0
  356. package/dist/esm/access/index.d.ts +30 -0
  357. package/dist/esm/access/index.d.ts.map +1 -0
  358. package/dist/esm/access/index.js +45 -0
  359. package/dist/esm/access/index.js.map +1 -0
  360. package/dist/esm/access/interfaces.d.ts +97 -0
  361. package/dist/esm/access/interfaces.d.ts.map +1 -0
  362. package/dist/esm/access/interfaces.js +17 -0
  363. package/dist/esm/access/interfaces.js.map +1 -0
  364. package/dist/esm/access/proxy.d.ts +21 -0
  365. package/dist/esm/access/proxy.d.ts.map +1 -0
  366. package/dist/esm/access/proxy.js +155 -0
  367. package/dist/esm/access/proxy.js.map +1 -0
  368. package/dist/esm/access/tailscale-dns.d.ts +28 -0
  369. package/dist/esm/access/tailscale-dns.d.ts.map +1 -0
  370. package/dist/esm/access/tailscale-dns.js +131 -0
  371. package/dist/esm/access/tailscale-dns.js.map +1 -0
  372. package/dist/esm/access/tailscale.d.ts +14 -0
  373. package/dist/esm/access/tailscale.d.ts.map +1 -0
  374. package/dist/esm/access/tailscale.js +135 -0
  375. package/dist/esm/access/tailscale.js.map +1 -0
  376. package/dist/esm/access/wireguard.d.ts +14 -0
  377. package/dist/esm/access/wireguard.d.ts.map +1 -0
  378. package/dist/esm/access/wireguard.js +140 -0
  379. package/dist/esm/access/wireguard.js.map +1 -0
  380. package/dist/esm/argocd/app.d.ts +31 -0
  381. package/dist/esm/argocd/app.d.ts.map +1 -0
  382. package/dist/esm/argocd/app.js +194 -0
  383. package/dist/esm/argocd/app.js.map +1 -0
  384. package/dist/esm/argocd/argocd.d.ts +33 -0
  385. package/dist/esm/argocd/argocd.d.ts.map +1 -0
  386. package/dist/esm/argocd/argocd.js +182 -0
  387. package/dist/esm/argocd/argocd.js.map +1 -0
  388. package/dist/esm/argocd/external-secrets.d.ts +23 -0
  389. package/dist/esm/argocd/external-secrets.d.ts.map +1 -0
  390. package/dist/esm/argocd/external-secrets.js +121 -0
  391. package/dist/esm/argocd/external-secrets.js.map +1 -0
  392. package/dist/esm/argocd/index.d.ts +18 -0
  393. package/dist/esm/argocd/index.d.ts.map +1 -0
  394. package/dist/esm/argocd/index.js +27 -0
  395. package/dist/esm/argocd/index.js.map +1 -0
  396. package/dist/esm/argocd/interfaces.d.ts +144 -0
  397. package/dist/esm/argocd/interfaces.d.ts.map +1 -0
  398. package/dist/esm/argocd/interfaces.js +8 -0
  399. package/dist/esm/argocd/interfaces.js.map +1 -0
  400. package/dist/esm/argocd/project.d.ts +23 -0
  401. package/dist/esm/argocd/project.d.ts.map +1 -0
  402. package/dist/esm/argocd/project.js +93 -0
  403. package/dist/esm/argocd/project.js.map +1 -0
  404. package/dist/esm/argocd/repo.d.ts +15 -0
  405. package/dist/esm/argocd/repo.d.ts.map +1 -0
  406. package/dist/esm/argocd/repo.js +83 -0
  407. package/dist/esm/argocd/repo.js.map +1 -0
  408. package/dist/esm/argocd/secrets.d.ts +23 -0
  409. package/dist/esm/argocd/secrets.d.ts.map +1 -0
  410. package/dist/esm/argocd/secrets.js +87 -0
  411. package/dist/esm/argocd/secrets.js.map +1 -0
  412. package/dist/esm/backup/index.d.ts +20 -0
  413. package/dist/esm/backup/index.d.ts.map +1 -0
  414. package/dist/esm/backup/index.js +206 -0
  415. package/dist/esm/backup/index.js.map +1 -0
  416. package/dist/esm/backup/interfaces.d.ts +29 -0
  417. package/dist/esm/backup/interfaces.d.ts.map +1 -0
  418. package/dist/esm/backup/interfaces.js +3 -0
  419. package/dist/esm/backup/interfaces.js.map +1 -0
  420. package/dist/esm/cache/cache.d.ts +38 -0
  421. package/dist/esm/cache/cache.d.ts.map +1 -0
  422. package/dist/esm/cache/cache.js +189 -0
  423. package/dist/esm/cache/cache.js.map +1 -0
  424. package/dist/esm/cache/index.d.ts +2 -0
  425. package/dist/esm/cache/index.d.ts.map +1 -1
  426. package/dist/esm/cache/index.js +7 -0
  427. package/dist/esm/cache/index.js.map +1 -1
  428. package/dist/esm/cache/interfaces.d.ts +20 -0
  429. package/dist/esm/cache/interfaces.d.ts.map +1 -1
  430. package/dist/esm/cache/interfaces.js +18 -0
  431. package/dist/esm/cache/interfaces.js.map +1 -1
  432. package/dist/esm/cluster/index.d.ts +1 -1
  433. package/dist/esm/cluster/index.d.ts.map +1 -1
  434. package/dist/esm/cluster/interfaces.d.ts +18 -1
  435. package/dist/esm/cluster/interfaces.d.ts.map +1 -1
  436. package/dist/esm/database/index.d.ts +1 -0
  437. package/dist/esm/database/index.d.ts.map +1 -1
  438. package/dist/esm/database/index.js +5 -0
  439. package/dist/esm/database/index.js.map +1 -1
  440. package/dist/esm/database/interfaces.d.ts +19 -0
  441. package/dist/esm/database/interfaces.d.ts.map +1 -1
  442. package/dist/esm/database/interfaces.js +20 -0
  443. package/dist/esm/database/interfaces.js.map +1 -1
  444. package/dist/esm/dns/index.d.ts +1 -0
  445. package/dist/esm/dns/index.d.ts.map +1 -1
  446. package/dist/esm/dns/index.js +3 -0
  447. package/dist/esm/dns/index.js.map +1 -1
  448. package/dist/esm/dns/interfaces.d.ts +11 -0
  449. package/dist/esm/dns/interfaces.d.ts.map +1 -1
  450. package/dist/esm/dns/interfaces.js +12 -0
  451. package/dist/esm/dns/interfaces.js.map +1 -1
  452. package/dist/esm/email/index.d.ts +41 -0
  453. package/dist/esm/email/index.d.ts.map +1 -0
  454. package/dist/esm/email/index.js +318 -0
  455. package/dist/esm/email/index.js.map +1 -0
  456. package/dist/esm/email/interfaces.d.ts +119 -0
  457. package/dist/esm/email/interfaces.d.ts.map +1 -0
  458. package/dist/esm/email/interfaces.js +19 -0
  459. package/dist/esm/email/interfaces.js.map +1 -0
  460. package/dist/esm/factories/cluster.d.ts +1 -1
  461. package/dist/esm/factories/cluster.d.ts.map +1 -1
  462. package/dist/esm/factories/cluster.js +16 -0
  463. package/dist/esm/factories/cluster.js.map +1 -1
  464. package/dist/esm/factories/index.d.ts +1 -1
  465. package/dist/esm/factories/index.d.ts.map +1 -1
  466. package/dist/esm/factories/index.js.map +1 -1
  467. package/dist/esm/factories/types.d.ts +26 -0
  468. package/dist/esm/factories/types.d.ts.map +1 -1
  469. package/dist/esm/factories/types.js.map +1 -1
  470. package/dist/esm/index.d.ts +26 -5
  471. package/dist/esm/index.d.ts.map +1 -1
  472. package/dist/esm/index.js +72 -8
  473. package/dist/esm/index.js.map +1 -1
  474. package/dist/esm/network/index.d.ts +1 -0
  475. package/dist/esm/network/index.d.ts.map +1 -1
  476. package/dist/esm/network/index.js +3 -1
  477. package/dist/esm/network/index.js.map +1 -1
  478. package/dist/esm/network/interfaces.d.ts +6 -0
  479. package/dist/esm/network/interfaces.d.ts.map +1 -1
  480. package/dist/esm/network/interfaces.js +7 -0
  481. package/dist/esm/network/interfaces.js.map +1 -1
  482. package/dist/esm/nimbus/index.d.ts +28 -0
  483. package/dist/esm/nimbus/index.d.ts.map +1 -0
  484. package/dist/esm/nimbus/index.js +44 -0
  485. package/dist/esm/nimbus/index.js.map +1 -0
  486. package/dist/esm/nimbus/interfaces.d.ts +64 -0
  487. package/dist/esm/nimbus/interfaces.d.ts.map +1 -0
  488. package/dist/esm/nimbus/interfaces.js +10 -0
  489. package/dist/esm/nimbus/interfaces.js.map +1 -0
  490. package/dist/esm/nimbus/registry.d.ts +19 -0
  491. package/dist/esm/nimbus/registry.d.ts.map +1 -0
  492. package/dist/esm/nimbus/registry.js +123 -0
  493. package/dist/esm/nimbus/registry.js.map +1 -0
  494. package/dist/esm/observability/alerts.d.ts +51 -0
  495. package/dist/esm/observability/alerts.d.ts.map +1 -0
  496. package/dist/esm/observability/alerts.js +281 -0
  497. package/dist/esm/observability/alerts.js.map +1 -0
  498. package/dist/esm/observability/dashboards/_helpers.d.ts +38 -0
  499. package/dist/esm/observability/dashboards/_helpers.d.ts.map +1 -0
  500. package/dist/esm/observability/dashboards/_helpers.js +141 -0
  501. package/dist/esm/observability/dashboards/_helpers.js.map +1 -0
  502. package/dist/esm/observability/dashboards/alerts.d.ts +12 -0
  503. package/dist/esm/observability/dashboards/alerts.d.ts.map +1 -0
  504. package/dist/esm/observability/dashboards/alerts.js +261 -0
  505. package/dist/esm/observability/dashboards/alerts.js.map +1 -0
  506. package/dist/esm/observability/dashboards/argocd-app.d.ts +18 -0
  507. package/dist/esm/observability/dashboards/argocd-app.d.ts.map +1 -0
  508. package/dist/esm/observability/dashboards/argocd-app.js +212 -0
  509. package/dist/esm/observability/dashboards/argocd-app.js.map +1 -0
  510. package/dist/esm/observability/dashboards/argocd.d.ts +9 -0
  511. package/dist/esm/observability/dashboards/argocd.d.ts.map +1 -0
  512. package/dist/esm/observability/dashboards/argocd.js +141 -0
  513. package/dist/esm/observability/dashboards/argocd.js.map +1 -0
  514. package/dist/esm/observability/dashboards/cert-manager.d.ts +9 -0
  515. package/dist/esm/observability/dashboards/cert-manager.d.ts.map +1 -0
  516. package/dist/esm/observability/dashboards/cert-manager.js +167 -0
  517. package/dist/esm/observability/dashboards/cert-manager.js.map +1 -0
  518. package/dist/esm/observability/dashboards/cnpg-cluster.d.ts +15 -0
  519. package/dist/esm/observability/dashboards/cnpg-cluster.d.ts.map +1 -0
  520. package/dist/esm/observability/dashboards/cnpg-cluster.js +376 -0
  521. package/dist/esm/observability/dashboards/cnpg-cluster.js.map +1 -0
  522. package/dist/esm/observability/dashboards/cnpg.d.ts +10 -0
  523. package/dist/esm/observability/dashboards/cnpg.d.ts.map +1 -0
  524. package/dist/esm/observability/dashboards/cnpg.js +181 -0
  525. package/dist/esm/observability/dashboards/cnpg.js.map +1 -0
  526. package/dist/esm/observability/dashboards/index.d.ts +28 -0
  527. package/dist/esm/observability/dashboards/index.d.ts.map +1 -0
  528. package/dist/esm/observability/dashboards/index.js +159 -0
  529. package/dist/esm/observability/dashboards/index.js.map +1 -0
  530. package/dist/esm/observability/dashboards/loki.d.ts +9 -0
  531. package/dist/esm/observability/dashboards/loki.d.ts.map +1 -0
  532. package/dist/esm/observability/dashboards/loki.js +113 -0
  533. package/dist/esm/observability/dashboards/loki.js.map +1 -0
  534. package/dist/esm/observability/dashboards/mariadb-cluster.d.ts +15 -0
  535. package/dist/esm/observability/dashboards/mariadb-cluster.d.ts.map +1 -0
  536. package/dist/esm/observability/dashboards/mariadb-cluster.js +424 -0
  537. package/dist/esm/observability/dashboards/mariadb-cluster.js.map +1 -0
  538. package/dist/esm/observability/dashboards/mariadb.d.ts +10 -0
  539. package/dist/esm/observability/dashboards/mariadb.d.ts.map +1 -0
  540. package/dist/esm/observability/dashboards/mariadb.js +181 -0
  541. package/dist/esm/observability/dashboards/mariadb.js.map +1 -0
  542. package/dist/esm/observability/dashboards/minio.d.ts +9 -0
  543. package/dist/esm/observability/dashboards/minio.d.ts.map +1 -0
  544. package/dist/esm/observability/dashboards/minio.js +267 -0
  545. package/dist/esm/observability/dashboards/minio.js.map +1 -0
  546. package/dist/esm/observability/dashboards/neo4j-cluster.d.ts +16 -0
  547. package/dist/esm/observability/dashboards/neo4j-cluster.d.ts.map +1 -0
  548. package/dist/esm/observability/dashboards/neo4j-cluster.js +223 -0
  549. package/dist/esm/observability/dashboards/neo4j-cluster.js.map +1 -0
  550. package/dist/esm/observability/dashboards/neo4j.d.ts +9 -0
  551. package/dist/esm/observability/dashboards/neo4j.d.ts.map +1 -0
  552. package/dist/esm/observability/dashboards/neo4j.js +156 -0
  553. package/dist/esm/observability/dashboards/neo4j.js.map +1 -0
  554. package/dist/esm/observability/dashboards/redis.d.ts +9 -0
  555. package/dist/esm/observability/dashboards/redis.d.ts.map +1 -0
  556. package/dist/esm/observability/dashboards/redis.js +221 -0
  557. package/dist/esm/observability/dashboards/redis.js.map +1 -0
  558. package/dist/esm/observability/dashboards/traefik.d.ts +9 -0
  559. package/dist/esm/observability/dashboards/traefik.d.ts.map +1 -0
  560. package/dist/esm/observability/dashboards/traefik.js +387 -0
  561. package/dist/esm/observability/dashboards/traefik.js.map +1 -0
  562. package/dist/esm/observability/index.d.ts +10 -0
  563. package/dist/esm/observability/index.d.ts.map +1 -0
  564. package/dist/esm/observability/index.js +14 -0
  565. package/dist/esm/observability/index.js.map +1 -0
  566. package/dist/esm/observability/interfaces.d.ts +173 -0
  567. package/dist/esm/observability/interfaces.d.ts.map +1 -0
  568. package/dist/esm/observability/interfaces.js +11 -0
  569. package/dist/esm/observability/interfaces.js.map +1 -0
  570. package/dist/esm/observability/stack.d.ts +31 -0
  571. package/dist/esm/observability/stack.d.ts.map +1 -0
  572. package/dist/esm/observability/stack.js +523 -0
  573. package/dist/esm/observability/stack.js.map +1 -0
  574. package/dist/esm/operator/cnpg.d.ts +22 -0
  575. package/dist/esm/operator/cnpg.d.ts.map +1 -0
  576. package/dist/esm/operator/cnpg.js +412 -0
  577. package/dist/esm/operator/cnpg.js.map +1 -0
  578. package/dist/esm/operator/index.d.ts +48 -0
  579. package/dist/esm/operator/index.d.ts.map +1 -0
  580. package/dist/esm/operator/index.js +155 -0
  581. package/dist/esm/operator/index.js.map +1 -0
  582. package/dist/esm/operator/interfaces.d.ts +192 -0
  583. package/dist/esm/operator/interfaces.d.ts.map +1 -0
  584. package/dist/esm/operator/interfaces.js +20 -0
  585. package/dist/esm/operator/interfaces.js.map +1 -0
  586. package/dist/esm/operator/mariadb.d.ts +22 -0
  587. package/dist/esm/operator/mariadb.d.ts.map +1 -0
  588. package/dist/esm/operator/mariadb.js +389 -0
  589. package/dist/esm/operator/mariadb.js.map +1 -0
  590. package/dist/esm/operator/minio.d.ts +37 -0
  591. package/dist/esm/operator/minio.d.ts.map +1 -0
  592. package/dist/esm/operator/minio.js +364 -0
  593. package/dist/esm/operator/minio.js.map +1 -0
  594. package/dist/esm/operator/neo4j.d.ts +48 -0
  595. package/dist/esm/operator/neo4j.d.ts.map +1 -0
  596. package/dist/esm/operator/neo4j.js +431 -0
  597. package/dist/esm/operator/neo4j.js.map +1 -0
  598. package/dist/esm/platform/components/argocd.d.ts +9 -0
  599. package/dist/esm/platform/components/argocd.d.ts.map +1 -0
  600. package/dist/esm/platform/components/argocd.js +82 -0
  601. package/dist/esm/platform/components/argocd.js.map +1 -0
  602. package/dist/esm/platform/components/cert-manager.d.ts +9 -0
  603. package/dist/esm/platform/components/cert-manager.d.ts.map +1 -0
  604. package/dist/esm/platform/components/cert-manager.js +56 -0
  605. package/dist/esm/platform/components/cert-manager.js.map +1 -0
  606. package/dist/esm/platform/components/descheduler.d.ts +9 -0
  607. package/dist/esm/platform/components/descheduler.d.ts.map +1 -0
  608. package/dist/esm/platform/components/descheduler.js +67 -0
  609. package/dist/esm/platform/components/descheduler.js.map +1 -0
  610. package/dist/esm/platform/components/external-dns.d.ts +9 -0
  611. package/dist/esm/platform/components/external-dns.d.ts.map +1 -0
  612. package/dist/esm/platform/components/external-dns.js +83 -0
  613. package/dist/esm/platform/components/external-dns.js.map +1 -0
  614. package/dist/esm/platform/components/external-secrets.d.ts +9 -0
  615. package/dist/esm/platform/components/external-secrets.d.ts.map +1 -0
  616. package/dist/esm/platform/components/external-secrets.js +62 -0
  617. package/dist/esm/platform/components/external-secrets.js.map +1 -0
  618. package/dist/esm/platform/components/index.d.ts +17 -0
  619. package/dist/esm/platform/components/index.d.ts.map +1 -0
  620. package/dist/esm/platform/components/index.js +28 -0
  621. package/dist/esm/platform/components/index.js.map +1 -0
  622. package/dist/esm/platform/components/oauth2-proxy.d.ts +14 -0
  623. package/dist/esm/platform/components/oauth2-proxy.d.ts.map +1 -0
  624. package/dist/esm/platform/components/oauth2-proxy.js +80 -0
  625. package/dist/esm/platform/components/oauth2-proxy.js.map +1 -0
  626. package/dist/esm/platform/components/traefik.d.ts +9 -0
  627. package/dist/esm/platform/components/traefik.d.ts.map +1 -0
  628. package/dist/esm/platform/components/traefik.js +74 -0
  629. package/dist/esm/platform/components/traefik.js.map +1 -0
  630. package/dist/esm/platform/components/vault.d.ts +12 -0
  631. package/dist/esm/platform/components/vault.d.ts.map +1 -0
  632. package/dist/esm/platform/components/vault.js +474 -0
  633. package/dist/esm/platform/components/vault.js.map +1 -0
  634. package/dist/esm/platform/index.d.ts +2 -1
  635. package/dist/esm/platform/index.d.ts.map +1 -1
  636. package/dist/esm/platform/index.js +3 -1
  637. package/dist/esm/platform/index.js.map +1 -1
  638. package/dist/esm/platform/interfaces.d.ts +73 -1
  639. package/dist/esm/platform/interfaces.d.ts.map +1 -1
  640. package/dist/esm/platform/interfaces.js +8 -0
  641. package/dist/esm/platform/interfaces.js.map +1 -1
  642. package/dist/esm/platform/stack.d.ts +1 -1
  643. package/dist/esm/platform/stack.d.ts.map +1 -1
  644. package/dist/esm/platform/stack.js +363 -153
  645. package/dist/esm/platform/stack.js.map +1 -1
  646. package/dist/esm/queue/index.d.ts +1 -0
  647. package/dist/esm/queue/index.d.ts.map +1 -1
  648. package/dist/esm/queue/index.js +5 -0
  649. package/dist/esm/queue/index.js.map +1 -1
  650. package/dist/esm/queue/interfaces.d.ts +20 -0
  651. package/dist/esm/queue/interfaces.d.ts.map +1 -1
  652. package/dist/esm/queue/interfaces.js +21 -0
  653. package/dist/esm/queue/interfaces.js.map +1 -1
  654. package/dist/esm/rackspace/cluster.d.ts +30 -0
  655. package/dist/esm/rackspace/cluster.d.ts.map +1 -0
  656. package/dist/esm/rackspace/cluster.js +116 -0
  657. package/dist/esm/rackspace/cluster.js.map +1 -0
  658. package/dist/esm/rackspace/index.d.ts +7 -0
  659. package/dist/esm/rackspace/index.d.ts.map +1 -0
  660. package/dist/esm/rackspace/index.js +11 -0
  661. package/dist/esm/rackspace/index.js.map +1 -0
  662. package/dist/esm/secrets/index.d.ts +1 -0
  663. package/dist/esm/secrets/index.d.ts.map +1 -1
  664. package/dist/esm/secrets/index.js +3 -0
  665. package/dist/esm/secrets/index.js.map +1 -1
  666. package/dist/esm/secrets/interfaces.d.ts +7 -0
  667. package/dist/esm/secrets/interfaces.d.ts.map +1 -1
  668. package/dist/esm/secrets/interfaces.js +8 -0
  669. package/dist/esm/secrets/interfaces.js.map +1 -1
  670. package/dist/esm/state/index.d.ts +1 -0
  671. package/dist/esm/state/index.d.ts.map +1 -1
  672. package/dist/esm/state/index.js +3 -0
  673. package/dist/esm/state/index.js.map +1 -1
  674. package/dist/esm/state/interfaces.d.ts +6 -0
  675. package/dist/esm/state/interfaces.d.ts.map +1 -1
  676. package/dist/esm/state/interfaces.js +7 -0
  677. package/dist/esm/state/interfaces.js.map +1 -1
  678. package/dist/esm/types/cloud-target.d.ts +7 -0
  679. package/dist/esm/types/cloud-target.d.ts.map +1 -1
  680. package/dist/esm/types/cloud-target.js +9 -2
  681. package/dist/esm/types/cloud-target.js.map +1 -1
  682. package/dist/esm/types/exposed-service.d.ts +20 -0
  683. package/dist/esm/types/exposed-service.d.ts.map +1 -0
  684. package/dist/esm/types/exposed-service.js +8 -0
  685. package/dist/esm/types/exposed-service.js.map +1 -0
  686. package/dist/esm/types/index.d.ts +3 -1
  687. package/dist/esm/types/index.d.ts.map +1 -1
  688. package/dist/esm/types/index.js +5 -1
  689. package/dist/esm/types/index.js.map +1 -1
  690. package/dist/esm/types/storage-tiers.d.ts +26 -0
  691. package/dist/esm/types/storage-tiers.d.ts.map +1 -0
  692. package/dist/esm/types/storage-tiers.js +30 -0
  693. package/dist/esm/types/storage-tiers.js.map +1 -0
  694. package/dist/esm/utils/ensure-namespace.d.ts +7 -0
  695. package/dist/esm/utils/ensure-namespace.d.ts.map +1 -0
  696. package/dist/esm/utils/ensure-namespace.js +53 -0
  697. package/dist/esm/utils/ensure-namespace.js.map +1 -0
  698. package/dist/esm/utils/index.d.ts +1 -0
  699. package/dist/esm/utils/index.d.ts.map +1 -1
  700. package/dist/esm/utils/index.js +3 -1
  701. package/dist/esm/utils/index.js.map +1 -1
  702. package/package.json +8 -4
package/README.md CHANGED
@@ -50,20 +50,24 @@ Or start from scratch:
50
50
  import { createNetwork, createCluster, createPlatformStack } from "@reyemtech/nimbus";
51
51
  import type { INetwork, ICluster } from "@reyemtech/nimbus";
52
52
 
53
- const network = await createNetwork("prod", {
53
+ const network = (await createNetwork("prod", {
54
54
  cloud: "aws",
55
55
  cidr: "10.0.0.0/16",
56
56
  natStrategy: "fck-nat",
57
- }) as INetwork;
58
-
59
- const cluster = await createCluster("prod", {
60
- cloud: "aws",
61
- nodePools: [
62
- { name: "system", instanceType: "t4g.small", minNodes: 2, maxNodes: 3 },
63
- { name: "workers", instanceType: "c6a.large", minNodes: 1, maxNodes: 10, spot: true },
64
- ],
65
- providerOptions: { aws: { autoMode: true } },
66
- }, network) as ICluster;
57
+ })) as INetwork;
58
+
59
+ const cluster = (await createCluster(
60
+ "prod",
61
+ {
62
+ cloud: "aws",
63
+ nodePools: [
64
+ { name: "system", instanceType: "t4g.small", minNodes: 2, maxNodes: 3 },
65
+ { name: "workers", instanceType: "c6a.large", minNodes: 1, maxNodes: 10, spot: true },
66
+ ],
67
+ providerOptions: { aws: { autoMode: true } },
68
+ },
69
+ network
70
+ )) as ICluster;
67
71
 
68
72
  createPlatformStack("prod", { cluster, domain: "example.com" });
69
73
  ```
@@ -80,14 +84,14 @@ nimbus check # Show which providers are installed
80
84
 
81
85
  ### Templates
82
86
 
83
- | Template | Description |
84
- |----------|-------------|
85
- | `empty` | Blank scaffold with TODO placeholders |
86
- | `minimal-aws` | State backend + Secrets Manager (no cluster) |
87
- | `minimal-azure` | State backend + Key Vault (no cluster) |
88
- | `aws` | Full stack: VPC + EKS + Route 53 + Secrets + Platform |
89
- | `azure` | Full stack: VNet + AKS + Azure DNS + Key Vault + Platform |
90
- | `multi-cloud` | AWS + Azure active-active with Global Load Balancer |
87
+ | Template | Description |
88
+ | --------------- | --------------------------------------------------------- |
89
+ | `empty` | Blank scaffold with TODO placeholders |
90
+ | `minimal-aws` | State backend + Secrets Manager (no cluster) |
91
+ | `minimal-azure` | State backend + Key Vault (no cluster) |
92
+ | `aws` | Full stack: VPC + EKS + Route 53 + Secrets + Platform |
93
+ | `azure` | Full stack: VNet + AKS + Azure DNS + Key Vault + Platform |
94
+ | `multi-cloud` | AWS + Azure active-active with Global Load Balancer |
91
95
 
92
96
  ### Day-to-Day Operations
93
97
 
@@ -125,15 +129,15 @@ pulumi stack output # View stack outputs
125
129
 
126
130
  ### Module Status
127
131
 
128
- | Module | AWS | Azure | GCP |
129
- |--------|-----|-------|-----|
130
- | **Network** | VPC + fck-nat/managed NAT | VNet + NAT Gateway | Planned |
131
- | **Cluster** | EKS + Auto Mode | AKS + virtual nodes | Planned |
132
- | **DNS** | Route 53 | Azure DNS | Planned |
133
- | **Secrets** | Secrets Manager | Key Vault | Planned |
134
- | **State** | S3 + DynamoDB locking + replication | Blob + GRS | Planned |
135
- | **Platform** | Helm (provider-agnostic) | Helm (provider-agnostic) | Helm (provider-agnostic) |
136
- | **Global LB** | Route 53 health-checked routing | Planned | — |
132
+ | Module | AWS | Azure | GCP |
133
+ | ------------- | ----------------------------------- | ------------------------ | ------------------------ |
134
+ | **Network** | VPC + fck-nat/managed NAT | VNet + NAT Gateway | Planned |
135
+ | **Cluster** | EKS + Auto Mode | AKS + virtual nodes | Planned |
136
+ | **DNS** | Route 53 | Azure DNS | Planned |
137
+ | **Secrets** | Secrets Manager | Key Vault | Planned |
138
+ | **State** | S3 + DynamoDB locking + replication | Blob + GRS | Planned |
139
+ | **Platform** | Helm (provider-agnostic) | Helm (provider-agnostic) | Helm (provider-agnostic) |
140
+ | **Global LB** | Route 53 health-checked routing | Planned | — |
137
141
 
138
142
  ## Documentation
139
143
 
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Shared split DNS for access gateway providers.
3
+ *
4
+ * Two resolution paths:
5
+ * - Web services (proxied): grafana.iad-1.internal → Nginx proxy (port 80)
6
+ * - Data services (direct): mariadb-main.data.iad-1.internal → ClusterIP (native port)
7
+ *
8
+ * @module access/dns
9
+ */
10
+ import * as k8s from "@pulumi/kubernetes";
11
+ import * as pulumi from "@pulumi/pulumi";
12
+ import type { IAccessDnsConfig } from "./interfaces";
13
+ import type { IExposedService } from "../types";
14
+ /** CoreDNS deployment output. */
15
+ export interface IAccessDns {
16
+ readonly service: k8s.core.v1.Service;
17
+ readonly clusterIp: pulumi.Output<string>;
18
+ readonly zone: string;
19
+ }
20
+ /**
21
+ * Deploy CoreDNS for access gateway split DNS.
22
+ *
23
+ * @param proxiedServices - Services routed through the Nginx proxy (web UIs)
24
+ */
25
+ export declare function deployAccessDns(name: string, prefix: string, dnsConfig: IAccessDnsConfig, namespace: string, provider: k8s.Provider, proxiedServices: ReadonlyArray<IExposedService>, dependsOn?: pulumi.Resource[]): IAccessDns;
26
+ //# sourceMappingURL=dns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.d.ts","sourceRoot":"","sources":["../../../src/access/dns.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhD,iCAAiC;AACjC,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA6CD;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,gBAAgB,EAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,eAAe,EAAE,aAAa,CAAC,eAAe,CAAC,EAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,GAC5B,UAAU,CAqEZ"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ /**
3
+ * Shared split DNS for access gateway providers.
4
+ *
5
+ * Two resolution paths:
6
+ * - Web services (proxied): grafana.iad-1.internal → Nginx proxy (port 80)
7
+ * - Data services (direct): mariadb-main.data.iad-1.internal → ClusterIP (native port)
8
+ *
9
+ * @module access/dns
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.deployAccessDns = deployAccessDns;
46
+ const k8s = __importStar(require("@pulumi/kubernetes"));
47
+ const pulumi = __importStar(require("@pulumi/pulumi"));
48
+ /**
49
+ * Build CoreDNS Corefile with two resolution paths:
50
+ *
51
+ * 1. Per-service rewrites for proxied web services:
52
+ * grafana.iad-1.internal → access-proxy.access.svc.cluster.local
53
+ *
54
+ * 2. Catch-all regex for direct access (with namespace):
55
+ * mariadb-main.data.iad-1.internal → mariadb-main.data.svc.cluster.local
56
+ */
57
+ function buildCorefile(prefix, tld, proxiedServices) {
58
+ const zone = `${prefix}.${tld}`;
59
+ const prefixEsc = prefix.replace(/\./g, "\\.");
60
+ const tldEsc = tld.replace(/\./g, "\\.");
61
+ // Build per-service rewrite rules for proxied services
62
+ // CoreDNS exact name rewrite: rewrite name exact <from> <to>
63
+ const proxyRewrites = proxiedServices.map((svc) => ` rewrite name exact ${svc.label}.${prefix}.${tld} access-proxy.access.svc.cluster.local`);
64
+ return pulumi.output(proxyRewrites).apply((rewrites) => `${zone}:53 {
65
+ # Proxied web services → Nginx reverse proxy (port 80)
66
+ ${rewrites.join("\n")}
67
+
68
+ # Direct access: <service>.<namespace>.iad-1.internal → <service>.<namespace>.svc.cluster.local
69
+ rewrite name regex ([a-z0-9-]+)\\.([a-z0-9-]+)\\.${prefixEsc}\\.${tldEsc} {1}.{2}.svc.cluster.local answer auto
70
+
71
+ forward . /etc/resolv.conf
72
+ cache 60
73
+ errors
74
+ log
75
+ }
76
+ `);
77
+ }
78
+ /**
79
+ * Deploy CoreDNS for access gateway split DNS.
80
+ *
81
+ * @param proxiedServices - Services routed through the Nginx proxy (web UIs)
82
+ */
83
+ function deployAccessDns(name, prefix, dnsConfig, namespace, provider, proxiedServices, dependsOn) {
84
+ const tld = dnsConfig.tld ?? "internal";
85
+ const zone = `${prefix}.${tld}`;
86
+ const corefile = new k8s.core.v1.ConfigMap(`${name}-access-dns-corefile`, {
87
+ metadata: { name: "access-dns-corefile", namespace },
88
+ data: { Corefile: buildCorefile(prefix, tld, proxiedServices) },
89
+ }, { provider, dependsOn });
90
+ const labels = { app: "access-dns", "app.kubernetes.io/managed-by": "nimbus" };
91
+ new k8s.apps.v1.Deployment(`${name}-access-dns`, {
92
+ metadata: { name: "access-dns", namespace },
93
+ spec: {
94
+ replicas: 1,
95
+ selector: { matchLabels: labels },
96
+ template: {
97
+ metadata: { labels },
98
+ spec: {
99
+ containers: [
100
+ {
101
+ name: "coredns",
102
+ image: "coredns/coredns:1.12.0",
103
+ args: ["-conf", "/etc/coredns/Corefile"],
104
+ ports: [
105
+ { name: "dns", containerPort: 53, protocol: "UDP" },
106
+ { name: "dns-tcp", containerPort: 53, protocol: "TCP" },
107
+ ],
108
+ volumeMounts: [{ name: "corefile", mountPath: "/etc/coredns", readOnly: true }],
109
+ resources: {
110
+ requests: { cpu: "10m", memory: "16Mi" },
111
+ limits: { cpu: "50m", memory: "64Mi" },
112
+ },
113
+ },
114
+ ],
115
+ volumes: [{ name: "corefile", configMap: { name: "access-dns-corefile" } }],
116
+ },
117
+ },
118
+ },
119
+ }, { provider, dependsOn: [corefile] });
120
+ const service = new k8s.core.v1.Service(`${name}-access-dns-svc`, {
121
+ metadata: { name: "access-dns", namespace },
122
+ spec: {
123
+ selector: labels,
124
+ ports: [
125
+ { name: "dns", port: 53, targetPort: 53, protocol: "UDP" },
126
+ { name: "dns-tcp", port: 53, targetPort: 53, protocol: "TCP" },
127
+ ],
128
+ },
129
+ }, { provider });
130
+ return {
131
+ service,
132
+ clusterIp: service.spec.clusterIP,
133
+ zone,
134
+ };
135
+ }
136
+ //# sourceMappingURL=dns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dns.js","sourceRoot":"","sources":["../../../src/access/dns.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Access gateway module — provider-agnostic remote cluster access.
3
+ *
4
+ * Supports Tailscale (always-on mesh) and WireGuard (self-hosted VPN).
5
+ * Optional split DNS for multi-cluster service discovery.
6
+ *
7
+ * @module access
8
+ */
9
+ import type { IAccessGatewayConfig, IAccessGateway } from "./interfaces";
10
+ export type { AccessGatewayProvider, IAccessDnsConfig, ITailscaleConfig, IWireGuardPeer, IWireGuardConfig, ITailscaleGatewayConfig, IWireGuardGatewayConfig, IAccessGatewayConfig, IAccessGateway, } from "./interfaces";
11
+ export { ACCESS_GATEWAY_PROVIDERS } from "./interfaces";
12
+ /**
13
+ * Create an access gateway for secure remote access to cluster services.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const gateway = createAccessGateway("vpn", {
18
+ * cluster,
19
+ * hostnamePrefix: "iad-1",
20
+ * dns: { enabled: true, tld: "internal" },
21
+ * provider: "tailscale",
22
+ * tailscale: {
23
+ * authKey: config.requireSecret("tailscaleAuthKey"),
24
+ * routes: ["10.0.0.0/8"],
25
+ * },
26
+ * });
27
+ * ```
28
+ */
29
+ export declare function createAccessGateway(name: string, config: IAccessGatewayConfig): IAccessGateway;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/access/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAKzE,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,uBAAuB,EACvB,uBAAuB,EACvB,oBAAoB,EACpB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAS9F"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ /**
3
+ * Access gateway module — provider-agnostic remote cluster access.
4
+ *
5
+ * Supports Tailscale (always-on mesh) and WireGuard (self-hosted VPN).
6
+ * Optional split DNS for multi-cluster service discovery.
7
+ *
8
+ * @module access
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ACCESS_GATEWAY_PROVIDERS = void 0;
12
+ exports.createAccessGateway = createAccessGateway;
13
+ const tailscale_1 = require("./tailscale");
14
+ const wireguard_1 = require("./wireguard");
15
+ const types_1 = require("../types");
16
+ var interfaces_1 = require("./interfaces");
17
+ Object.defineProperty(exports, "ACCESS_GATEWAY_PROVIDERS", { enumerable: true, get: function () { return interfaces_1.ACCESS_GATEWAY_PROVIDERS; } });
18
+ /**
19
+ * Create an access gateway for secure remote access to cluster services.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const gateway = createAccessGateway("vpn", {
24
+ * cluster,
25
+ * hostnamePrefix: "iad-1",
26
+ * dns: { enabled: true, tld: "internal" },
27
+ * provider: "tailscale",
28
+ * tailscale: {
29
+ * authKey: config.requireSecret("tailscaleAuthKey"),
30
+ * routes: ["10.0.0.0/8"],
31
+ * },
32
+ * });
33
+ * ```
34
+ */
35
+ function createAccessGateway(name, config) {
36
+ switch (config.provider) {
37
+ case "tailscale":
38
+ return (0, tailscale_1.deployTailscale)(name, config);
39
+ case "wireguard":
40
+ return (0, wireguard_1.deployWireGuard)(name, config);
41
+ default:
42
+ return (0, types_1.assertNever)(config);
43
+ }
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/access/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAqCH,kDASC;AA3CD,2CAA8C;AAC9C,2CAA8C;AAC9C,oCAAuC;AAavC,2CAAwD;AAA/C,sHAAA,wBAAwB,OAAA;AAEjC;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,mBAAmB,CAAC,IAAY,EAAE,MAA4B;IAC5E,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;QACxB,KAAK,WAAW;YACd,OAAO,IAAA,2BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC,KAAK,WAAW;YACd,OAAO,IAAA,2BAAe,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvC;YACE,OAAO,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;AACH,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Access gateway interfaces for @reyemtech/nimbus.
3
+ *
4
+ * Provider-agnostic remote access to Kubernetes cluster services
5
+ * via Tailscale, WireGuard, or future providers.
6
+ *
7
+ * @module access/interfaces
8
+ */
9
+ import type * as pulumi from "@pulumi/pulumi";
10
+ import type * as k8s from "@pulumi/kubernetes";
11
+ import type { ICluster } from "../cluster";
12
+ import type { IExposedService } from "../types";
13
+ /** Access gateway provider type. */
14
+ export type AccessGatewayProvider = "tailscale" | "wireguard";
15
+ /** Typed constant map for AccessGatewayProvider string literals. */
16
+ export declare const ACCESS_GATEWAY_PROVIDERS: {
17
+ TAILSCALE: "tailscale";
18
+ WIREGUARD: "wireguard";
19
+ };
20
+ /** Split DNS configuration for service discovery. */
21
+ export interface IAccessDnsConfig {
22
+ /** Enable split DNS for service discovery. Default: false. */
23
+ readonly enabled: boolean;
24
+ /** Top-level domain for service names. Default: "internal". */
25
+ readonly tld?: string;
26
+ }
27
+ /** Tailscale-specific configuration. */
28
+ export interface ITailscaleConfig {
29
+ /** OAuth client ID (generate at Tailscale admin → Settings → OAuth). */
30
+ readonly oauthClientId: pulumi.Input<string>;
31
+ /** OAuth client secret. */
32
+ readonly oauthClientSecret: pulumi.Input<string>;
33
+ /** Subnet routes to advertise to the tailnet (e.g., ["10.0.0.0/8"]). */
34
+ readonly routes: ReadonlyArray<string>;
35
+ /** Tags for the operator node (e.g., ["tag:k8s-operator"]). Default: ["tag:k8s-operator"]. */
36
+ readonly tags?: ReadonlyArray<string>;
37
+ /** Services to expose as Tailscale devices. Collect from module .exposedServices outputs. */
38
+ readonly services?: ReadonlyArray<IExposedService>;
39
+ /** Tailscale Operator Helm chart version override. */
40
+ readonly version?: string;
41
+ /** Additional Helm values. */
42
+ readonly values?: Readonly<Record<string, unknown>>;
43
+ }
44
+ /** WireGuard peer (client) configuration. */
45
+ export interface IWireGuardPeer {
46
+ /** Peer display name (used for config file naming). */
47
+ readonly name: string;
48
+ /** Peer's WireGuard public key. */
49
+ readonly publicKey: string;
50
+ /** IP addresses assigned to this peer within the VPN CIDR. */
51
+ readonly allowedIps: ReadonlyArray<string>;
52
+ }
53
+ /** WireGuard-specific configuration. */
54
+ export interface IWireGuardConfig {
55
+ /** Public DNS name or IP for the WireGuard endpoint. */
56
+ readonly endpoint: string;
57
+ /** UDP listen port. Default: 51820. */
58
+ readonly listenPort?: number;
59
+ /** VPN tunnel CIDR (e.g., "10.100.0.0/24"). */
60
+ readonly serverCidr: string;
61
+ /** Subnet routes to push to clients (e.g., ["10.0.0.0/8"]). */
62
+ readonly routes: ReadonlyArray<string>;
63
+ /** Client peers. */
64
+ readonly peers: ReadonlyArray<IWireGuardPeer>;
65
+ /** WireGuard Helm chart version override. */
66
+ readonly version?: string;
67
+ /** Additional Helm values. */
68
+ readonly values?: Readonly<Record<string, unknown>>;
69
+ }
70
+ /** Tailscale access gateway config. */
71
+ export interface ITailscaleGatewayConfig {
72
+ readonly cluster: ICluster;
73
+ readonly hostnamePrefix?: string;
74
+ readonly dns?: IAccessDnsConfig;
75
+ readonly provider: "tailscale";
76
+ readonly tailscale: ITailscaleConfig;
77
+ }
78
+ /** WireGuard access gateway config. */
79
+ export interface IWireGuardGatewayConfig {
80
+ readonly cluster: ICluster;
81
+ readonly hostnamePrefix?: string;
82
+ readonly dns?: IAccessDnsConfig;
83
+ readonly provider: "wireguard";
84
+ readonly wireguard: IWireGuardConfig;
85
+ }
86
+ /** Access gateway config — discriminated union on provider. */
87
+ export type IAccessGatewayConfig = ITailscaleGatewayConfig | IWireGuardGatewayConfig;
88
+ /** Access gateway output. */
89
+ export interface IAccessGateway {
90
+ readonly name: string;
91
+ readonly provider: AccessGatewayProvider;
92
+ readonly namespace: string;
93
+ readonly helmRelease: k8s.helm.v3.Release;
94
+ readonly serverPublicKey?: pulumi.Output<string>;
95
+ readonly clientConfigs?: pulumi.Output<Record<string, string>>;
96
+ }
97
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/access/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ /**
3
+ * Access gateway interfaces for @reyemtech/nimbus.
4
+ *
5
+ * Provider-agnostic remote access to Kubernetes cluster services
6
+ * via Tailscale, WireGuard, or future providers.
7
+ *
8
+ * @module access/interfaces
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.ACCESS_GATEWAY_PROVIDERS = void 0;
12
+ /** Typed constant map for AccessGatewayProvider string literals. */
13
+ exports.ACCESS_GATEWAY_PROVIDERS = {
14
+ TAILSCALE: "tailscale",
15
+ WIREGUARD: "wireguard",
16
+ };
17
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/access/interfaces.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAUH,oEAAoE;AACvD,QAAA,wBAAwB,GAAG;IACtC,SAAS,EAAE,WAAoB;IAC/B,SAAS,EAAE,WAAoB;CACgB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Reverse proxy for access gateway service exposure.
3
+ *
4
+ * Deploys a lightweight Nginx pod that routes by Host header
5
+ * to backend services, providing port 80 access to services
6
+ * running on non-standard ports (Prometheus :9090, Vault :8200, etc.).
7
+ *
8
+ * All services are accessed via: <label>.iad-1.internal:80
9
+ *
10
+ * @module access/proxy
11
+ */
12
+ import * as k8s from "@pulumi/kubernetes";
13
+ import * as pulumi from "@pulumi/pulumi";
14
+ import type { IExposedService } from "../types";
15
+ /**
16
+ * Deploy the access proxy — Nginx reverse proxy for exposed services.
17
+ *
18
+ * Returns the proxy ClusterIP service name for CoreDNS to resolve to.
19
+ */
20
+ export declare function deployAccessProxy(name: string, services: ReadonlyArray<IExposedService>, dnsSuffix: string, namespace: string, provider: k8s.Provider, dependsOn?: pulumi.Resource[]): k8s.core.v1.Service;
21
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/access/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAwDhD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,aAAa,CAAC,eAAe,CAAC,EACxC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,SAAS,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,GAC5B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAsErB"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ /**
3
+ * Reverse proxy for access gateway service exposure.
4
+ *
5
+ * Deploys a lightweight Nginx pod that routes by Host header
6
+ * to backend services, providing port 80 access to services
7
+ * running on non-standard ports (Prometheus :9090, Vault :8200, etc.).
8
+ *
9
+ * All services are accessed via: <label>.iad-1.internal:80
10
+ *
11
+ * @module access/proxy
12
+ */
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || (function () {
30
+ var ownKeys = function(o) {
31
+ ownKeys = Object.getOwnPropertyNames || function (o) {
32
+ var ar = [];
33
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
34
+ return ar;
35
+ };
36
+ return ownKeys(o);
37
+ };
38
+ return function (mod) {
39
+ if (mod && mod.__esModule) return mod;
40
+ var result = {};
41
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
42
+ __setModuleDefault(result, mod);
43
+ return result;
44
+ };
45
+ })();
46
+ Object.defineProperty(exports, "__esModule", { value: true });
47
+ exports.deployAccessProxy = deployAccessProxy;
48
+ const k8s = __importStar(require("@pulumi/kubernetes"));
49
+ const pulumi = __importStar(require("@pulumi/pulumi"));
50
+ /**
51
+ * Build Nginx config from exposed services.
52
+ *
53
+ * Each service gets a server block matching its label as the hostname.
54
+ * All listen on port 80, proxy to the real service's port.
55
+ */
56
+ function buildNginxConfig(services, dnsSuffix) {
57
+ const serviceConfigs = services.map((svc) => {
58
+ const upstream = pulumi
59
+ .output(svc.originalName ?? svc.name)
60
+ .apply((name) => `${name}.${svc.namespace}.svc.cluster.local:${svc.port}`);
61
+ return upstream.apply((u) => ` server {
62
+ listen 80;
63
+ server_name ${svc.label}.${dnsSuffix};
64
+
65
+ location / {
66
+ proxy_pass http://${u};
67
+ proxy_set_header Host $host;
68
+ proxy_set_header X-Real-IP $remote_addr;
69
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
70
+ proxy_set_header X-Forwarded-Proto $scheme;
71
+ proxy_http_version 1.1;
72
+ proxy_set_header Upgrade $http_upgrade;
73
+ proxy_set_header Connection "upgrade";
74
+ }
75
+ }`);
76
+ });
77
+ return pulumi.all(serviceConfigs).apply((blocks) => `events {
78
+ worker_connections 256;
79
+ }
80
+
81
+ http {
82
+ resolver kube-dns.kube-system.svc.cluster.local valid=10s;
83
+
84
+ ${blocks.join("\n\n")}
85
+
86
+ # Default — return 404 for unknown hosts
87
+ server {
88
+ listen 80 default_server;
89
+ return 404;
90
+ }
91
+ }
92
+ `);
93
+ }
94
+ /**
95
+ * Deploy the access proxy — Nginx reverse proxy for exposed services.
96
+ *
97
+ * Returns the proxy ClusterIP service name for CoreDNS to resolve to.
98
+ */
99
+ function deployAccessProxy(name, services, dnsSuffix, namespace, provider, dependsOn) {
100
+ const labels = {
101
+ app: "access-proxy",
102
+ "app.kubernetes.io/managed-by": "nimbus",
103
+ };
104
+ const configMap = new k8s.core.v1.ConfigMap(`${name}-access-proxy-config`, {
105
+ metadata: { name: "access-proxy-config", namespace },
106
+ data: {
107
+ "nginx.conf": buildNginxConfig(services, dnsSuffix),
108
+ },
109
+ }, { provider, dependsOn });
110
+ new k8s.apps.v1.Deployment(`${name}-access-proxy`, {
111
+ metadata: { name: "access-proxy", namespace },
112
+ spec: {
113
+ replicas: 1,
114
+ selector: { matchLabels: labels },
115
+ template: {
116
+ metadata: { labels },
117
+ spec: {
118
+ containers: [
119
+ {
120
+ name: "nginx",
121
+ image: "nginx:alpine",
122
+ ports: [{ name: "http", containerPort: 80 }],
123
+ volumeMounts: [
124
+ {
125
+ name: "config",
126
+ mountPath: "/etc/nginx/nginx.conf",
127
+ subPath: "nginx.conf",
128
+ readOnly: true,
129
+ },
130
+ ],
131
+ resources: {
132
+ requests: { cpu: "5m", memory: "8Mi" },
133
+ limits: { cpu: "50m", memory: "32Mi" },
134
+ },
135
+ },
136
+ ],
137
+ volumes: [
138
+ {
139
+ name: "config",
140
+ configMap: { name: "access-proxy-config" },
141
+ },
142
+ ],
143
+ },
144
+ },
145
+ },
146
+ }, { provider, dependsOn: [configMap] });
147
+ return new k8s.core.v1.Service(`${name}-access-proxy-svc`, {
148
+ metadata: { name: "access-proxy", namespace },
149
+ spec: {
150
+ selector: labels,
151
+ ports: [{ name: "http", port: 80, targetPort: 80 }],
152
+ },
153
+ }, { provider });
154
+ }
155
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/access/proxy.ts"],"names":[],"mappings":"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"}