@ydkn/pulumi-components 0.4.1 → 0.4.3

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 (498) hide show
  1. package/.eslintrc.json +14 -0
  2. package/.gitlab-ci.yml +72 -0
  3. package/.prettierrc +3 -0
  4. package/{index.d.ts → index.ts} +47 -2
  5. package/lib/avahi/deployment.ts +171 -0
  6. package/lib/avahi/{index.d.ts → index.ts} +1 -1
  7. package/lib/avahi/service.ts +118 -0
  8. package/lib/aws/accessKey.ts +40 -0
  9. package/lib/aws/bucket.ts +71 -0
  10. package/lib/aws/{index.d.ts → index.ts} +1 -1
  11. package/lib/blocky/assets/dashboard.json +1777 -0
  12. package/lib/blocky/deployment.ts +134 -0
  13. package/lib/blocky/{index.d.ts → index.ts} +1 -1
  14. package/lib/certManager/assets/dashboard.json +1188 -0
  15. package/lib/certManager/certificate.ts +168 -0
  16. package/lib/certManager/index.ts +39 -0
  17. package/lib/certManager/issuer.ts +141 -0
  18. package/lib/certManager/operator.ts +244 -0
  19. package/lib/common/componentResource.ts +78 -0
  20. package/lib/common/{index.d.ts → index.ts} +2 -1
  21. package/lib/common/types.ts +3 -0
  22. package/lib/cups/avahiService.ts +66 -0
  23. package/lib/cups/deployment.ts +199 -0
  24. package/lib/cups/index.ts +4 -0
  25. package/lib/devcontainer/assets/init.sh +44 -0
  26. package/lib/devcontainer/deployment.ts +253 -0
  27. package/lib/devcontainer/index.ts +3 -0
  28. package/lib/dhcpd/deployment.ts +164 -0
  29. package/lib/dhcpd/index.ts +3 -0
  30. package/lib/externalDns/dnsEndpoint.ts +70 -0
  31. package/lib/externalDns/index.ts +18 -0
  32. package/lib/externalDns/operator.ts +165 -0
  33. package/lib/fcos/assets/rpm-opstree-install.sh +0 -0
  34. package/lib/fcos/config.ts +237 -0
  35. package/lib/fcos/host.ts +91 -0
  36. package/lib/fcos/index.ts +27 -0
  37. package/lib/freeradius/deployment.ts +244 -0
  38. package/lib/freeradius/{index.d.ts → index.ts} +1 -1
  39. package/lib/gitlab/{index.d.ts → index.ts} +13 -2
  40. package/lib/gitlab/project.ts +148 -0
  41. package/lib/gitlab/renovate.ts +98 -0
  42. package/lib/gitlab/runners/cleanup.ts +104 -0
  43. package/lib/gitlab/runners/{index.d.ts → index.ts} +1 -1
  44. package/lib/gitlab/runners/runner.ts +122 -0
  45. package/lib/gitlab/runners/runners.ts +49 -0
  46. package/lib/grafana/agent.ts +449 -0
  47. package/lib/grafana/dashboard.ts +38 -0
  48. package/lib/grafana/datasource.ts +59 -0
  49. package/lib/grafana/deployment.ts +78 -0
  50. package/lib/grafana/index.ts +17 -0
  51. package/lib/hcloud/assets/fcos-install.sh +0 -0
  52. package/lib/hcloud/cluster.ts +533 -0
  53. package/lib/hcloud/{index.d.ts → index.ts} +1 -1
  54. package/lib/hcloud/kubernetes.ts +249 -0
  55. package/lib/hcloud/wireguard.ts +164 -0
  56. package/lib/k0s/cluster.ts +264 -0
  57. package/lib/k0s/{index.d.ts → index.ts} +1 -1
  58. package/lib/kubeStateMetrics/deployment.ts +60 -0
  59. package/lib/kubeStateMetrics/index.ts +3 -0
  60. package/lib/kubernetes/helm/{index.d.ts → index.ts} +1 -1
  61. package/lib/kubernetes/helm/v3/chart.ts +79 -0
  62. package/lib/kubernetes/helm/v3/helpers.ts +32 -0
  63. package/lib/kubernetes/helm/v3/{index.d.ts → index.ts} +1 -1
  64. package/lib/kubernetes/helm/v3/release.ts +17 -0
  65. package/lib/kubernetes/{index.d.ts → index.ts} +1 -1
  66. package/lib/kubernetes/transformations/filter.ts +43 -0
  67. package/lib/kubernetes/transformations/{index.d.ts → index.ts} +1 -1
  68. package/lib/kubernetes/transformations/metadataNamespace.ts +25 -0
  69. package/lib/kubernetes/transformations/removeCrdDescriptions.ts +78 -0
  70. package/lib/kubernetes/transformations/v1beta1Deprecations.ts +60 -0
  71. package/lib/kubernetes/v1/{index.d.ts → index.ts} +12 -2
  72. package/lib/kubernetes/v1/nfsVolume.ts +145 -0
  73. package/lib/kubernetes/v1/pullSecret.ts +37 -0
  74. package/lib/kubernetes/v1/service.ts +58 -0
  75. package/lib/localPathProvisioner/deployment.ts +88 -0
  76. package/lib/localPathProvisioner/index.ts +3 -0
  77. package/lib/loki/deployment.ts +122 -0
  78. package/lib/loki/index.ts +3 -0
  79. package/lib/metallb/controller.ts +96 -0
  80. package/lib/metallb/{index.d.ts → index.ts} +11 -2
  81. package/lib/metallb/ipAddressPool.ts +33 -0
  82. package/lib/metallb/l2Advertisement.ts +34 -0
  83. package/lib/node/{index.d.ts → index.ts} +1 -1
  84. package/lib/node/kubernetes.ts +129 -0
  85. package/lib/node/node.ts +17 -0
  86. package/lib/openldap/deployment.ts +226 -0
  87. package/lib/openldap/{index.d.ts → index.ts} +1 -1
  88. package/lib/plex/{index.d.ts → index.ts} +1 -1
  89. package/lib/plex/mediaServer.ts +265 -0
  90. package/lib/plex/playlists.ts +123 -0
  91. package/lib/postgresql/cluster.ts +61 -0
  92. package/lib/postgresql/index.ts +4 -0
  93. package/lib/postgresql/operator.ts +70 -0
  94. package/lib/prometheus/index.ts +23 -0
  95. package/lib/prometheus/monitor.ts +13 -0
  96. package/lib/prometheus/operator.ts +264 -0
  97. package/lib/prometheus/podMonitor.ts +32 -0
  98. package/lib/prometheus/serviceMonitor.ts +43 -0
  99. package/lib/raspberrypi/cluster.ts +279 -0
  100. package/lib/raspberrypi/{index.d.ts → index.ts} +1 -1
  101. package/lib/rethinkdb/deployment.ts +424 -0
  102. package/lib/rethinkdb/{index.d.ts → index.ts} +1 -1
  103. package/lib/rook/assets/dashboard.json +4871 -0
  104. package/lib/rook/blockPool.ts +80 -0
  105. package/lib/rook/cluster.ts +168 -0
  106. package/lib/rook/filesystem.ts +140 -0
  107. package/lib/rook/{index.d.ts → index.ts} +15 -2
  108. package/lib/rook/operator.ts +175 -0
  109. package/lib/samba/avahiService.ts +44 -0
  110. package/lib/samba/deployment.ts +305 -0
  111. package/lib/samba/index.ts +5 -0
  112. package/lib/samba/volumes.ts +70 -0
  113. package/lib/ssh/exec.ts +162 -0
  114. package/lib/ssh/file.ts +165 -0
  115. package/lib/ssh/{index.d.ts → index.ts} +1 -1
  116. package/lib/ssh/types.ts +20 -0
  117. package/lib/torproxy/deployment.ts +165 -0
  118. package/lib/torproxy/{index.d.ts → index.ts} +1 -1
  119. package/lib/traefik/assets/dashboard.json +759 -0
  120. package/lib/traefik/controller.ts +207 -0
  121. package/lib/traefik/{index.d.ts → index.ts} +1 -1
  122. package/lib/traefik/middleware.ts +37 -0
  123. package/lib/traefik/secureIngress.ts +81 -0
  124. package/lib/ubuntu/assets/init.sh +0 -0
  125. package/lib/ubuntu/deployment.ts +275 -0
  126. package/lib/ubuntu/{index.d.ts → index.ts} +1 -1
  127. package/lib/unifi/controller.ts +234 -0
  128. package/lib/unifi/{index.d.ts → index.ts} +1 -1
  129. package/lib/velero/{index.d.ts → index.ts} +1 -1
  130. package/lib/velero/operator.ts +182 -0
  131. package/lib/wireguard/deployment.ts +168 -0
  132. package/lib/wireguard/{index.d.ts → index.ts} +1 -1
  133. package/package.json +62 -62
  134. package/renovate.json +4 -0
  135. package/tsconfig.json +21 -0
  136. package/index.d.ts.map +0 -1
  137. package/index.js +0 -62
  138. package/index.js.map +0 -1
  139. package/lib/avahi/deployment.d.ts +0 -36
  140. package/lib/avahi/deployment.d.ts.map +0 -1
  141. package/lib/avahi/deployment.js +0 -164
  142. package/lib/avahi/deployment.js.map +0 -1
  143. package/lib/avahi/index.d.ts.map +0 -1
  144. package/lib/avahi/index.js +0 -8
  145. package/lib/avahi/index.js.map +0 -1
  146. package/lib/avahi/service.d.ts +0 -51
  147. package/lib/avahi/service.d.ts.map +0 -1
  148. package/lib/avahi/service.js +0 -57
  149. package/lib/avahi/service.js.map +0 -1
  150. package/lib/aws/accessKey.d.ts +0 -22
  151. package/lib/aws/accessKey.d.ts.map +0 -1
  152. package/lib/aws/accessKey.js +0 -27
  153. package/lib/aws/accessKey.js.map +0 -1
  154. package/lib/aws/bucket.d.ts +0 -28
  155. package/lib/aws/bucket.d.ts.map +0 -1
  156. package/lib/aws/bucket.js +0 -49
  157. package/lib/aws/bucket.js.map +0 -1
  158. package/lib/aws/index.d.ts.map +0 -1
  159. package/lib/aws/index.js +0 -8
  160. package/lib/aws/index.js.map +0 -1
  161. package/lib/blocky/deployment.d.ts +0 -39
  162. package/lib/blocky/deployment.d.ts.map +0 -1
  163. package/lib/blocky/deployment.js +0 -97
  164. package/lib/blocky/deployment.js.map +0 -1
  165. package/lib/blocky/index.d.ts.map +0 -1
  166. package/lib/blocky/index.js +0 -6
  167. package/lib/blocky/index.js.map +0 -1
  168. package/lib/certManager/certificate.d.ts +0 -126
  169. package/lib/certManager/certificate.d.ts.map +0 -1
  170. package/lib/certManager/certificate.js +0 -42
  171. package/lib/certManager/certificate.js.map +0 -1
  172. package/lib/certManager/index.d.ts +0 -5
  173. package/lib/certManager/index.d.ts.map +0 -1
  174. package/lib/certManager/index.js +0 -11
  175. package/lib/certManager/index.js.map +0 -1
  176. package/lib/certManager/issuer.d.ts +0 -109
  177. package/lib/certManager/issuer.d.ts.map +0 -1
  178. package/lib/certManager/issuer.js +0 -39
  179. package/lib/certManager/issuer.js.map +0 -1
  180. package/lib/certManager/operator.d.ts +0 -43
  181. package/lib/certManager/operator.d.ts.map +0 -1
  182. package/lib/certManager/operator.js +0 -177
  183. package/lib/certManager/operator.js.map +0 -1
  184. package/lib/common/componentResource.d.ts +0 -20
  185. package/lib/common/componentResource.d.ts.map +0 -1
  186. package/lib/common/componentResource.js +0 -62
  187. package/lib/common/componentResource.js.map +0 -1
  188. package/lib/common/index.d.ts.map +0 -1
  189. package/lib/common/index.js +0 -6
  190. package/lib/common/index.js.map +0 -1
  191. package/lib/common/types.d.ts +0 -3
  192. package/lib/common/types.d.ts.map +0 -1
  193. package/lib/common/types.js +0 -3
  194. package/lib/common/types.js.map +0 -1
  195. package/lib/externalDns/dnsEndpoint.d.ts +0 -66
  196. package/lib/externalDns/dnsEndpoint.d.ts.map +0 -1
  197. package/lib/externalDns/dnsEndpoint.js +0 -17
  198. package/lib/externalDns/dnsEndpoint.js.map +0 -1
  199. package/lib/externalDns/index.d.ts +0 -4
  200. package/lib/externalDns/index.d.ts.map +0 -1
  201. package/lib/externalDns/index.js +0 -8
  202. package/lib/externalDns/index.js.map +0 -1
  203. package/lib/externalDns/operator.d.ts +0 -45
  204. package/lib/externalDns/operator.d.ts.map +0 -1
  205. package/lib/externalDns/operator.js +0 -112
  206. package/lib/externalDns/operator.js.map +0 -1
  207. package/lib/fcos/config.d.ts +0 -156
  208. package/lib/fcos/config.d.ts.map +0 -1
  209. package/lib/fcos/config.js +0 -168
  210. package/lib/fcos/config.js.map +0 -1
  211. package/lib/fcos/host.d.ts +0 -34
  212. package/lib/fcos/host.d.ts.map +0 -1
  213. package/lib/fcos/host.js +0 -57
  214. package/lib/fcos/host.js.map +0 -1
  215. package/lib/fcos/index.d.ts +0 -4
  216. package/lib/fcos/index.d.ts.map +0 -1
  217. package/lib/fcos/index.js +0 -8
  218. package/lib/fcos/index.js.map +0 -1
  219. package/lib/freeradius/deployment.d.ts +0 -74
  220. package/lib/freeradius/deployment.d.ts.map +0 -1
  221. package/lib/freeradius/deployment.js +0 -216
  222. package/lib/freeradius/deployment.js.map +0 -1
  223. package/lib/freeradius/index.d.ts.map +0 -1
  224. package/lib/freeradius/index.js +0 -6
  225. package/lib/freeradius/index.js.map +0 -1
  226. package/lib/gitlab/index.d.ts.map +0 -1
  227. package/lib/gitlab/index.js +0 -12
  228. package/lib/gitlab/index.js.map +0 -1
  229. package/lib/gitlab/project.d.ts +0 -18
  230. package/lib/gitlab/project.d.ts.map +0 -1
  231. package/lib/gitlab/project.js +0 -108
  232. package/lib/gitlab/project.js.map +0 -1
  233. package/lib/gitlab/renovate.d.ts +0 -23
  234. package/lib/gitlab/renovate.d.ts.map +0 -1
  235. package/lib/gitlab/renovate.js +0 -77
  236. package/lib/gitlab/renovate.js.map +0 -1
  237. package/lib/gitlab/runners/cleanup.d.ts +0 -20
  238. package/lib/gitlab/runners/cleanup.d.ts.map +0 -1
  239. package/lib/gitlab/runners/cleanup.js +0 -86
  240. package/lib/gitlab/runners/cleanup.js.map +0 -1
  241. package/lib/gitlab/runners/index.d.ts.map +0 -1
  242. package/lib/gitlab/runners/index.js +0 -10
  243. package/lib/gitlab/runners/index.js.map +0 -1
  244. package/lib/gitlab/runners/runner.d.ts +0 -30
  245. package/lib/gitlab/runners/runner.d.ts.map +0 -1
  246. package/lib/gitlab/runners/runner.js +0 -89
  247. package/lib/gitlab/runners/runner.js.map +0 -1
  248. package/lib/gitlab/runners/runners.d.ts +0 -21
  249. package/lib/gitlab/runners/runners.d.ts.map +0 -1
  250. package/lib/gitlab/runners/runners.js +0 -36
  251. package/lib/gitlab/runners/runners.js.map +0 -1
  252. package/lib/grafana/agent.d.ts +0 -41
  253. package/lib/grafana/agent.d.ts.map +0 -1
  254. package/lib/grafana/agent.js +0 -379
  255. package/lib/grafana/agent.js.map +0 -1
  256. package/lib/grafana/index.d.ts +0 -3
  257. package/lib/grafana/index.d.ts.map +0 -1
  258. package/lib/grafana/index.js +0 -6
  259. package/lib/grafana/index.js.map +0 -1
  260. package/lib/hcloud/cluster.d.ts +0 -96
  261. package/lib/hcloud/cluster.d.ts.map +0 -1
  262. package/lib/hcloud/cluster.js +0 -323
  263. package/lib/hcloud/cluster.js.map +0 -1
  264. package/lib/hcloud/index.d.ts.map +0 -1
  265. package/lib/hcloud/index.js +0 -10
  266. package/lib/hcloud/index.js.map +0 -1
  267. package/lib/hcloud/kubernetes.d.ts +0 -39
  268. package/lib/hcloud/kubernetes.d.ts.map +0 -1
  269. package/lib/hcloud/kubernetes.js +0 -188
  270. package/lib/hcloud/kubernetes.js.map +0 -1
  271. package/lib/hcloud/wireguard.d.ts +0 -33
  272. package/lib/hcloud/wireguard.d.ts.map +0 -1
  273. package/lib/hcloud/wireguard.js +0 -103
  274. package/lib/hcloud/wireguard.js.map +0 -1
  275. package/lib/k0s/cluster.d.ts +0 -51
  276. package/lib/k0s/cluster.d.ts.map +0 -1
  277. package/lib/k0s/cluster.js +0 -183
  278. package/lib/k0s/cluster.js.map +0 -1
  279. package/lib/k0s/index.d.ts.map +0 -1
  280. package/lib/k0s/index.js +0 -6
  281. package/lib/k0s/index.js.map +0 -1
  282. package/lib/kubernetes/helm/index.d.ts.map +0 -1
  283. package/lib/kubernetes/helm/index.js +0 -6
  284. package/lib/kubernetes/helm/index.js.map +0 -1
  285. package/lib/kubernetes/helm/v3/chart.d.ts +0 -37
  286. package/lib/kubernetes/helm/v3/chart.d.ts.map +0 -1
  287. package/lib/kubernetes/helm/v3/chart.js +0 -46
  288. package/lib/kubernetes/helm/v3/chart.js.map +0 -1
  289. package/lib/kubernetes/helm/v3/helpers.d.ts +0 -3
  290. package/lib/kubernetes/helm/v3/helpers.d.ts.map +0 -1
  291. package/lib/kubernetes/helm/v3/helpers.js +0 -29
  292. package/lib/kubernetes/helm/v3/helpers.js.map +0 -1
  293. package/lib/kubernetes/helm/v3/index.d.ts.map +0 -1
  294. package/lib/kubernetes/helm/v3/index.js +0 -10
  295. package/lib/kubernetes/helm/v3/index.js.map +0 -1
  296. package/lib/kubernetes/helm/v3/release.d.ts +0 -15
  297. package/lib/kubernetes/helm/v3/release.d.ts.map +0 -1
  298. package/lib/kubernetes/helm/v3/release.js +0 -18
  299. package/lib/kubernetes/helm/v3/release.js.map +0 -1
  300. package/lib/kubernetes/index.d.ts.map +0 -1
  301. package/lib/kubernetes/index.js +0 -10
  302. package/lib/kubernetes/index.js.map +0 -1
  303. package/lib/kubernetes/transformations/filter.d.ts +0 -13
  304. package/lib/kubernetes/transformations/filter.d.ts.map +0 -1
  305. package/lib/kubernetes/transformations/filter.js +0 -32
  306. package/lib/kubernetes/transformations/filter.js.map +0 -1
  307. package/lib/kubernetes/transformations/index.d.ts.map +0 -1
  308. package/lib/kubernetes/transformations/index.js +0 -12
  309. package/lib/kubernetes/transformations/index.js.map +0 -1
  310. package/lib/kubernetes/transformations/metadataNamespace.d.ts +0 -3
  311. package/lib/kubernetes/transformations/metadataNamespace.d.ts.map +0 -1
  312. package/lib/kubernetes/transformations/metadataNamespace.js +0 -27
  313. package/lib/kubernetes/transformations/metadataNamespace.js.map +0 -1
  314. package/lib/kubernetes/transformations/removeCrdDescriptions.d.ts +0 -3
  315. package/lib/kubernetes/transformations/removeCrdDescriptions.d.ts.map +0 -1
  316. package/lib/kubernetes/transformations/removeCrdDescriptions.js +0 -61
  317. package/lib/kubernetes/transformations/removeCrdDescriptions.js.map +0 -1
  318. package/lib/kubernetes/transformations/v1beta1Deprecations.d.ts +0 -3
  319. package/lib/kubernetes/transformations/v1beta1Deprecations.d.ts.map +0 -1
  320. package/lib/kubernetes/transformations/v1beta1Deprecations.js +0 -55
  321. package/lib/kubernetes/transformations/v1beta1Deprecations.js.map +0 -1
  322. package/lib/kubernetes/v1/index.d.ts.map +0 -1
  323. package/lib/kubernetes/v1/index.js +0 -10
  324. package/lib/kubernetes/v1/index.js.map +0 -1
  325. package/lib/kubernetes/v1/nfsVolume.d.ts +0 -92
  326. package/lib/kubernetes/v1/nfsVolume.d.ts.map +0 -1
  327. package/lib/kubernetes/v1/nfsVolume.js +0 -97
  328. package/lib/kubernetes/v1/nfsVolume.js.map +0 -1
  329. package/lib/kubernetes/v1/pullSecret.d.ts +0 -31
  330. package/lib/kubernetes/v1/pullSecret.d.ts.map +0 -1
  331. package/lib/kubernetes/v1/pullSecret.js +0 -27
  332. package/lib/kubernetes/v1/pullSecret.js.map +0 -1
  333. package/lib/kubernetes/v1/service.d.ts +0 -31
  334. package/lib/kubernetes/v1/service.d.ts.map +0 -1
  335. package/lib/kubernetes/v1/service.js +0 -43
  336. package/lib/kubernetes/v1/service.js.map +0 -1
  337. package/lib/metallb/controller.d.ts +0 -17
  338. package/lib/metallb/controller.d.ts.map +0 -1
  339. package/lib/metallb/controller.js +0 -87
  340. package/lib/metallb/controller.js.map +0 -1
  341. package/lib/metallb/index.d.ts.map +0 -1
  342. package/lib/metallb/index.js +0 -10
  343. package/lib/metallb/index.js.map +0 -1
  344. package/lib/metallb/ipAddressPool.d.ts +0 -20
  345. package/lib/metallb/ipAddressPool.d.ts.map +0 -1
  346. package/lib/metallb/ipAddressPool.js +0 -22
  347. package/lib/metallb/ipAddressPool.js.map +0 -1
  348. package/lib/metallb/l2Advertisement.d.ts +0 -21
  349. package/lib/metallb/l2Advertisement.d.ts.map +0 -1
  350. package/lib/metallb/l2Advertisement.js +0 -22
  351. package/lib/metallb/l2Advertisement.js.map +0 -1
  352. package/lib/node/index.d.ts.map +0 -1
  353. package/lib/node/index.js +0 -6
  354. package/lib/node/index.js.map +0 -1
  355. package/lib/node/kubernetes.d.ts +0 -38
  356. package/lib/node/kubernetes.d.ts.map +0 -1
  357. package/lib/node/kubernetes.js +0 -89
  358. package/lib/node/kubernetes.js.map +0 -1
  359. package/lib/node/node.d.ts +0 -21
  360. package/lib/node/node.d.ts.map +0 -1
  361. package/lib/node/node.js +0 -3
  362. package/lib/node/node.js.map +0 -1
  363. package/lib/openldap/deployment.d.ts +0 -58
  364. package/lib/openldap/deployment.d.ts.map +0 -1
  365. package/lib/openldap/deployment.js +0 -217
  366. package/lib/openldap/deployment.js.map +0 -1
  367. package/lib/openldap/index.d.ts.map +0 -1
  368. package/lib/openldap/index.js +0 -6
  369. package/lib/openldap/index.js.map +0 -1
  370. package/lib/plex/index.d.ts.map +0 -1
  371. package/lib/plex/index.js +0 -8
  372. package/lib/plex/index.js.map +0 -1
  373. package/lib/plex/mediaServer.d.ts +0 -46
  374. package/lib/plex/mediaServer.d.ts.map +0 -1
  375. package/lib/plex/mediaServer.js +0 -234
  376. package/lib/plex/mediaServer.js.map +0 -1
  377. package/lib/plex/playlists.d.ts +0 -62
  378. package/lib/plex/playlists.d.ts.map +0 -1
  379. package/lib/plex/playlists.js +0 -129
  380. package/lib/plex/playlists.js.map +0 -1
  381. package/lib/prometheus/index.d.ts +0 -4
  382. package/lib/prometheus/index.d.ts.map +0 -1
  383. package/lib/prometheus/index.js +0 -8
  384. package/lib/prometheus/index.js.map +0 -1
  385. package/lib/prometheus/podMonitor.d.ts +0 -42
  386. package/lib/prometheus/podMonitor.d.ts.map +0 -1
  387. package/lib/prometheus/podMonitor.js +0 -17
  388. package/lib/prometheus/podMonitor.js.map +0 -1
  389. package/lib/prometheus/serviceMonitor.d.ts +0 -46
  390. package/lib/prometheus/serviceMonitor.d.ts.map +0 -1
  391. package/lib/prometheus/serviceMonitor.js +0 -17
  392. package/lib/prometheus/serviceMonitor.js.map +0 -1
  393. package/lib/raspberrypi/cluster.d.ts +0 -41
  394. package/lib/raspberrypi/cluster.d.ts.map +0 -1
  395. package/lib/raspberrypi/cluster.js +0 -194
  396. package/lib/raspberrypi/cluster.js.map +0 -1
  397. package/lib/raspberrypi/index.d.ts.map +0 -1
  398. package/lib/raspberrypi/index.js +0 -6
  399. package/lib/raspberrypi/index.js.map +0 -1
  400. package/lib/rethinkdb/deployment.d.ts +0 -61
  401. package/lib/rethinkdb/deployment.d.ts.map +0 -1
  402. package/lib/rethinkdb/deployment.js +0 -350
  403. package/lib/rethinkdb/deployment.js.map +0 -1
  404. package/lib/rethinkdb/index.d.ts.map +0 -1
  405. package/lib/rethinkdb/index.js +0 -6
  406. package/lib/rethinkdb/index.js.map +0 -1
  407. package/lib/rook/blockPool.d.ts +0 -28
  408. package/lib/rook/blockPool.d.ts.map +0 -1
  409. package/lib/rook/blockPool.js +0 -56
  410. package/lib/rook/blockPool.js.map +0 -1
  411. package/lib/rook/cluster.d.ts +0 -54
  412. package/lib/rook/cluster.d.ts.map +0 -1
  413. package/lib/rook/cluster.js +0 -100
  414. package/lib/rook/cluster.js.map +0 -1
  415. package/lib/rook/filesystem.d.ts +0 -29
  416. package/lib/rook/filesystem.d.ts.map +0 -1
  417. package/lib/rook/filesystem.js +0 -110
  418. package/lib/rook/filesystem.js.map +0 -1
  419. package/lib/rook/index.d.ts.map +0 -1
  420. package/lib/rook/index.js +0 -12
  421. package/lib/rook/index.js.map +0 -1
  422. package/lib/rook/operator.d.ts +0 -19
  423. package/lib/rook/operator.d.ts.map +0 -1
  424. package/lib/rook/operator.js +0 -162
  425. package/lib/rook/operator.js.map +0 -1
  426. package/lib/samba/deployment.d.ts +0 -79
  427. package/lib/samba/deployment.d.ts.map +0 -1
  428. package/lib/samba/deployment.js +0 -238
  429. package/lib/samba/deployment.js.map +0 -1
  430. package/lib/samba/index.d.ts +0 -3
  431. package/lib/samba/index.d.ts.map +0 -1
  432. package/lib/samba/index.js +0 -6
  433. package/lib/samba/index.js.map +0 -1
  434. package/lib/ssh/exec.d.ts +0 -33
  435. package/lib/ssh/exec.d.ts.map +0 -1
  436. package/lib/ssh/exec.js +0 -116
  437. package/lib/ssh/exec.js.map +0 -1
  438. package/lib/ssh/file.d.ts +0 -43
  439. package/lib/ssh/file.d.ts.map +0 -1
  440. package/lib/ssh/file.js +0 -110
  441. package/lib/ssh/file.js.map +0 -1
  442. package/lib/ssh/index.d.ts.map +0 -1
  443. package/lib/ssh/index.js +0 -8
  444. package/lib/ssh/index.js.map +0 -1
  445. package/lib/ssh/types.d.ts +0 -19
  446. package/lib/ssh/types.d.ts.map +0 -1
  447. package/lib/ssh/types.js +0 -3
  448. package/lib/ssh/types.js.map +0 -1
  449. package/lib/torproxy/deployment.d.ts +0 -31
  450. package/lib/torproxy/deployment.d.ts.map +0 -1
  451. package/lib/torproxy/deployment.js +0 -131
  452. package/lib/torproxy/deployment.js.map +0 -1
  453. package/lib/torproxy/index.d.ts.map +0 -1
  454. package/lib/torproxy/index.js +0 -6
  455. package/lib/torproxy/index.js.map +0 -1
  456. package/lib/traefik/controller.d.ts +0 -50
  457. package/lib/traefik/controller.d.ts.map +0 -1
  458. package/lib/traefik/controller.js +0 -166
  459. package/lib/traefik/controller.js.map +0 -1
  460. package/lib/traefik/index.d.ts.map +0 -1
  461. package/lib/traefik/index.js +0 -10
  462. package/lib/traefik/index.js.map +0 -1
  463. package/lib/traefik/middleware.d.ts +0 -27
  464. package/lib/traefik/middleware.d.ts.map +0 -1
  465. package/lib/traefik/middleware.js +0 -22
  466. package/lib/traefik/middleware.js.map +0 -1
  467. package/lib/traefik/secureIngress.d.ts +0 -32
  468. package/lib/traefik/secureIngress.d.ts.map +0 -1
  469. package/lib/traefik/secureIngress.js +0 -58
  470. package/lib/traefik/secureIngress.js.map +0 -1
  471. package/lib/ubuntu/deployment.d.ts +0 -67
  472. package/lib/ubuntu/deployment.d.ts.map +0 -1
  473. package/lib/ubuntu/deployment.js +0 -230
  474. package/lib/ubuntu/deployment.js.map +0 -1
  475. package/lib/ubuntu/index.d.ts.map +0 -1
  476. package/lib/ubuntu/index.js +0 -6
  477. package/lib/ubuntu/index.js.map +0 -1
  478. package/lib/unifi/controller.d.ts +0 -52
  479. package/lib/unifi/controller.d.ts.map +0 -1
  480. package/lib/unifi/controller.js +0 -232
  481. package/lib/unifi/controller.js.map +0 -1
  482. package/lib/unifi/index.d.ts.map +0 -1
  483. package/lib/unifi/index.js +0 -6
  484. package/lib/unifi/index.js.map +0 -1
  485. package/lib/velero/index.d.ts.map +0 -1
  486. package/lib/velero/index.js +0 -6
  487. package/lib/velero/index.js.map +0 -1
  488. package/lib/velero/operator.d.ts +0 -31
  489. package/lib/velero/operator.d.ts.map +0 -1
  490. package/lib/velero/operator.js +0 -148
  491. package/lib/velero/operator.js.map +0 -1
  492. package/lib/wireguard/deployment.d.ts +0 -82
  493. package/lib/wireguard/deployment.d.ts.map +0 -1
  494. package/lib/wireguard/deployment.js +0 -161
  495. package/lib/wireguard/deployment.js.map +0 -1
  496. package/lib/wireguard/index.d.ts.map +0 -1
  497. package/lib/wireguard/index.js +0 -6
  498. package/lib/wireguard/index.js.map +0 -1
@@ -0,0 +1,168 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as k8s from "@pulumi/kubernetes";
3
+
4
+ export interface IssuerRefArgs {
5
+ /**
6
+ * Issuer name
7
+ */
8
+ name: pulumi.Input<string>;
9
+ /**
10
+ * Optional: Kind of Issuer
11
+ */
12
+ kind?: pulumi.Input<string>;
13
+ }
14
+
15
+ export interface PrivateKeyArgs {
16
+ /**
17
+ * Optional: Crypto algorithm
18
+ */
19
+ algorithm?: pulumi.Input<string>;
20
+ /**
21
+ * Optional: Key size
22
+ */
23
+ size?: pulumi.Input<number>;
24
+ /**
25
+ * Optional: Rotation policy
26
+ */
27
+ rotationPolicy?: pulumi.Input<string>;
28
+ }
29
+
30
+ export interface PasswordSecretRefArgs {
31
+ /**
32
+ * Secret name
33
+ */
34
+ name: pulumi.Input<string>;
35
+ /**
36
+ * Secret key
37
+ */
38
+ key: pulumi.Input<string>;
39
+ }
40
+
41
+ export interface Pkcs12Args {
42
+ /**
43
+ * Optional: Create a PKCS12 bundle
44
+ */
45
+ create?: pulumi.Input<boolean>;
46
+ /**
47
+ * Password secret
48
+ */
49
+ passwordSecretRef: pulumi.Input<PasswordSecretRefArgs>;
50
+ }
51
+
52
+ export interface JksArgs {
53
+ /**
54
+ * Optional: Create a JKS bundle
55
+ */
56
+ create?: pulumi.Input<boolean>;
57
+ /**
58
+ * Password secret
59
+ */
60
+ passwordSecretRef: pulumi.Input<PasswordSecretRefArgs>;
61
+ }
62
+
63
+ export interface KeystoresArgs {
64
+ /**
65
+ * Optional: PKCS12
66
+ */
67
+ pkcs12?: pulumi.Input<Pkcs12Args>;
68
+ /**
69
+ * Optional: JKS
70
+ */
71
+ jks?: pulumi.Input<JksArgs>;
72
+ }
73
+
74
+ export interface CertificateSpecArgs {
75
+ /**
76
+ * DNS names
77
+ */
78
+ dnsNames: pulumi.Input<pulumi.Input<string>[]>;
79
+ /**
80
+ * Issuer reference
81
+ */
82
+ issuerRef: pulumi.Input<IssuerRefArgs>;
83
+ /**
84
+ * Optional: Common name
85
+ */
86
+ commonName?: pulumi.Input<string>;
87
+ /**
88
+ * Optional: Validity duration
89
+ */
90
+ duration?: pulumi.Input<string>;
91
+ /**
92
+ * Optional: Renew before expiration
93
+ */
94
+ renewBefore?: pulumi.Input<string>;
95
+ /**
96
+ * Optional: Name of secret to store certificate
97
+ */
98
+ secretName?: pulumi.Input<string>;
99
+ /**
100
+ * Optional: Private key options
101
+ */
102
+ privateKey?: pulumi.Input<PrivateKeyArgs>;
103
+ /**
104
+ * Optional: Is a certification authority
105
+ */
106
+ isCA?: pulumi.Input<boolean>;
107
+ /**
108
+ * Optional: Keystores
109
+ */
110
+ keystores?: pulumi.Input<KeystoresArgs>;
111
+ }
112
+
113
+ export interface CertificateArgs {
114
+ /**
115
+ * Metadata for the certificate resource
116
+ */
117
+ metadata: pulumi.Input<k8s.types.input.meta.v1.ObjectMeta>;
118
+ /**
119
+ * Spec for the certificate resource
120
+ */
121
+ spec: pulumi.Input<CertificateSpecArgs>;
122
+ }
123
+
124
+ export class Certificate extends k8s.apiextensions.CustomResource {
125
+ public readonly secretName: pulumi.Output<string>;
126
+ public readonly hostnames: pulumi.Output<pulumi.Output<string>[]>;
127
+
128
+ /**
129
+ * Create a new certificate resource.
130
+ * @param name The name of the certificate resource.
131
+ * @param args A bag of arguments to control the certificate creation.
132
+ * @param opts A bag of options that control this resource's behavior.
133
+ */
134
+ constructor(name: string, args: CertificateArgs, opts?: pulumi.CustomResourceOptions) {
135
+ const spec = pulumi.all([args.spec]).apply(([specWrapped]) => {
136
+ const spec = specWrapped as CertificateSpecArgs;
137
+
138
+ if (spec.secretName === undefined) {
139
+ spec.secretName = `${name}-tls`;
140
+ }
141
+
142
+ if (spec.privateKey === undefined) {
143
+ spec.privateKey = {};
144
+ }
145
+
146
+ spec.privateKey = pulumi.all([spec.privateKey]).apply(([privateKeyWrapped]) => {
147
+ const privateKey = privateKeyWrapped as PrivateKeyArgs;
148
+
149
+ if (privateKey.rotationPolicy === undefined) {
150
+ privateKey.rotationPolicy = "Always";
151
+ }
152
+
153
+ return privateKey;
154
+ });
155
+
156
+ if (spec.issuerRef === undefined) {
157
+ spec.issuerRef = { name: "letsencrypt", kind: "ClusterIssuer" };
158
+ }
159
+
160
+ return spec;
161
+ });
162
+
163
+ super(name, { apiVersion: "cert-manager.io/v1", kind: "Certificate", metadata: args.metadata, spec }, opts);
164
+
165
+ this.hostnames = spec.dnsNames as pulumi.Output<pulumi.Output<string>[]>;
166
+ this.secretName = spec.secretName as pulumi.Output<string>;
167
+ }
168
+ }
@@ -0,0 +1,39 @@
1
+ import { LetsEncryptCloudflareArgs, CertManagerArgs, CertManager } from "./operator";
2
+ import { IssuerRefArgs, PrivateKeyArgs, CertificateSpecArgs, CertificateArgs, Certificate } from "./certificate";
3
+ import {
4
+ SelfSignedArgs,
5
+ CaArgs,
6
+ PrivateKeySecretRefArgs,
7
+ SecretKeyRefArgs,
8
+ CloudflareSolverArgs,
9
+ DnsSolverArgs,
10
+ SolverArgs,
11
+ AcmeArgs,
12
+ IssuerSpecArgs,
13
+ IssuerArgs,
14
+ Issuer,
15
+ ClusterIssuer,
16
+ } from "./issuer";
17
+
18
+ export {
19
+ LetsEncryptCloudflareArgs,
20
+ CertManagerArgs,
21
+ CertManager,
22
+ SelfSignedArgs,
23
+ CaArgs,
24
+ PrivateKeySecretRefArgs,
25
+ SecretKeyRefArgs,
26
+ CloudflareSolverArgs,
27
+ DnsSolverArgs,
28
+ SolverArgs,
29
+ AcmeArgs,
30
+ IssuerSpecArgs,
31
+ IssuerArgs,
32
+ Issuer,
33
+ ClusterIssuer,
34
+ IssuerRefArgs,
35
+ PrivateKeyArgs,
36
+ CertificateSpecArgs,
37
+ CertificateArgs,
38
+ Certificate,
39
+ };
@@ -0,0 +1,141 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as k8s from "@pulumi/kubernetes";
3
+
4
+ export interface SelfSignedArgs {}
5
+
6
+ export interface CaArgs {
7
+ /**
8
+ * Optional: Name of secret to store certificate
9
+ */
10
+ secretName?: pulumi.Input<string>;
11
+ }
12
+
13
+ export interface PrivateKeySecretRefArgs {
14
+ /**
15
+ * Name of secret
16
+ */
17
+ name: pulumi.Input<string>;
18
+ }
19
+
20
+ export interface SecretKeyRefArgs {
21
+ /**
22
+ * Name of secret
23
+ */
24
+ name: pulumi.Input<string>;
25
+ /**
26
+ * Key of secret
27
+ */
28
+ key: pulumi.Input<string>;
29
+ }
30
+
31
+ export interface CloudflareSolverArgs {
32
+ /**
33
+ * E-Mail
34
+ */
35
+ email: pulumi.Input<string>;
36
+ /**
37
+ * Reference for secret containing the API token
38
+ */
39
+ apiTokenSecretRef: pulumi.Input<SecretKeyRefArgs>;
40
+ }
41
+
42
+ export interface DnsSolverArgs {
43
+ /**
44
+ * Cloudflare DNS solver
45
+ */
46
+ cloudflare?: pulumi.Input<CloudflareSolverArgs>;
47
+ }
48
+
49
+ export interface SolverArgs {
50
+ /**
51
+ * DNS solver
52
+ */
53
+ dns01?: pulumi.Input<DnsSolverArgs>;
54
+ }
55
+
56
+ export interface AcmeArgs {
57
+ /**
58
+ * E-Mail
59
+ */
60
+ email: pulumi.Input<string>;
61
+ /**
62
+ * Server
63
+ */
64
+ server: pulumi.Input<string>;
65
+ /**
66
+ * Reference to private key secret
67
+ */
68
+ privateKeySecretRef: pulumi.Input<PrivateKeySecretRefArgs>;
69
+ /**
70
+ * Solvers
71
+ */
72
+ solvers: pulumi.Input<pulumi.Input<SolverArgs>[]>;
73
+ }
74
+
75
+ export interface IssuerSpecArgs {
76
+ /**
77
+ * Optional: Self-Signed issuer
78
+ */
79
+ selfSigned?: pulumi.Input<SelfSignedArgs>;
80
+ /**
81
+ * Optional: CA issuer
82
+ */
83
+ ca?: pulumi.Input<CaArgs>;
84
+ /**
85
+ * Optional: ACME issuer
86
+ */
87
+ acme?: pulumi.Input<AcmeArgs>;
88
+ }
89
+
90
+ export interface IssuerArgs {
91
+ /**
92
+ * Metadata for the Issuer resource
93
+ */
94
+ metadata: pulumi.Input<k8s.types.input.meta.v1.ObjectMeta>;
95
+ /**
96
+ * Spec for the Issuer resource
97
+ */
98
+ spec: pulumi.Input<IssuerSpecArgs>;
99
+ }
100
+
101
+ export class Issuer extends k8s.apiextensions.CustomResource {
102
+ /**
103
+ * Create a new issuer resource.
104
+ * @param name The name of the issuer resource.
105
+ * @param args A bag of arguments to control the issuer creation.
106
+ * @param opts A bag of options that control this resource's behavior.
107
+ */
108
+ constructor(name: string, args: IssuerArgs, opts?: pulumi.CustomResourceOptions) {
109
+ super(
110
+ name,
111
+ {
112
+ apiVersion: "cert-manager.io/v1",
113
+ kind: "Issuer",
114
+ metadata: args.metadata,
115
+ spec: args.spec,
116
+ },
117
+ opts
118
+ );
119
+ }
120
+ }
121
+
122
+ export class ClusterIssuer extends k8s.apiextensions.CustomResource {
123
+ /**
124
+ * Create a new cluster issuer resource.
125
+ * @param name The name of the cluster issuer resource.
126
+ * @param args A bag of arguments to control the cluster issuer creation.
127
+ * @param opts A bag of options that control this resource's behavior.
128
+ */
129
+ constructor(name: string, args: IssuerArgs, opts?: pulumi.CustomResourceOptions) {
130
+ super(
131
+ name,
132
+ {
133
+ apiVersion: "cert-manager.io/v1",
134
+ kind: "ClusterIssuer",
135
+ metadata: args.metadata,
136
+ spec: args.spec,
137
+ },
138
+ opts
139
+ );
140
+ }
141
+ }
@@ -0,0 +1,244 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ import * as k8s from "@pulumi/kubernetes";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ import { ComponentResource } from "../common";
6
+ import * as helm from "../kubernetes/helm";
7
+ import { ClusterIssuer } from "./issuer";
8
+ import { Dashboard } from "../grafana";
9
+
10
+ export interface LetsEncryptCloudflareArgs {
11
+ token: pulumi.Input<string>;
12
+ email: pulumi.Input<string>;
13
+ }
14
+
15
+ export interface CertManagerArgs {
16
+ namespace?: pulumi.Input<string>;
17
+ replicas?: pulumi.Input<number>;
18
+ letsencryptCloudflare?: pulumi.Input<LetsEncryptCloudflareArgs>;
19
+ }
20
+
21
+ export class CertManager extends ComponentResource {
22
+ private readonly helmRelease: helm.v3.Release;
23
+ private readonly grafanaDashboard: Dashboard;
24
+ public readonly namespace: pulumi.Output<string>;
25
+ public readonly clusterIssuers: pulumi.Output<{ [key: string]: pulumi.Output<string> }>;
26
+
27
+ /**
28
+ * Create a new cert-manager resource.
29
+ * @param name The name of cert-manager resource.
30
+ * @param args A bag of arguments to control the cert-manager creation.
31
+ * @param opts A bag of options that control this resource's behavior.
32
+ */
33
+ constructor(name: string, args: CertManagerArgs, opts?: pulumi.ComponentResourceOptions) {
34
+ super("cert-manager", name, args, opts);
35
+
36
+ opts = this.opts(k8s.Provider);
37
+
38
+ if (args.replicas === undefined) {
39
+ args.replicas = 1;
40
+ }
41
+
42
+ this.namespace = args.namespace
43
+ ? pulumi.output(args.namespace)
44
+ : new k8s.core.v1.Namespace(name, { metadata: { name } }, opts).metadata.name;
45
+
46
+ const metadata = {
47
+ name,
48
+ namespace: this.namespace,
49
+ labels: {
50
+ "app.kubernetes.io/name": "cert-manager",
51
+ "app.kubernetes.io/component": "cert-manager",
52
+ "app.kubernetes.io/instance": name,
53
+ },
54
+ };
55
+
56
+ this.helmRelease = new helm.v3.Release(
57
+ name,
58
+ {
59
+ name: metadata.name,
60
+ namespace: metadata.namespace,
61
+ repositoryOpts: { repo: "https://charts.jetstack.io" },
62
+ chart: "cert-manager",
63
+ values: {
64
+ fullnameOverride: name,
65
+ replicaCount: args.replicas,
66
+ installCRDs: true,
67
+ global: {
68
+ leaderElection: { namespace: metadata.namespace },
69
+ },
70
+ extraArgs: ["--enable-certificate-owner-ref=true"],
71
+ webhook: {
72
+ replicaCount: args.replicas,
73
+ affinity: {
74
+ podAntiAffinity: {
75
+ preferredDuringSchedulingIgnoredDuringExecution: [
76
+ {
77
+ weight: 100,
78
+ podAffinityTerm: {
79
+ labelSelector: {
80
+ matchExpressions: [
81
+ { key: "app.kubernetes.io/name", operator: "In", values: ["cert-manager"] },
82
+ { key: "app.kubernetes.io/component", operator: "In", values: ["webhook"] },
83
+ { key: "app.kubernetes.io/instance", operator: "In", values: [name] },
84
+ ],
85
+ },
86
+ topologyKey: "kubernetes.io/hostname",
87
+ },
88
+ },
89
+ ],
90
+ },
91
+ },
92
+ resources: {
93
+ requests: { memory: "48Mi" },
94
+ limits: { memory: "96Mi" },
95
+ },
96
+ },
97
+ cainjector: {
98
+ replicaCount: args.replicas,
99
+ affinity: {
100
+ podAntiAffinity: {
101
+ preferredDuringSchedulingIgnoredDuringExecution: [
102
+ {
103
+ weight: 100,
104
+ podAffinityTerm: {
105
+ labelSelector: {
106
+ matchExpressions: [
107
+ { key: "app.kubernetes.io/name", operator: "In", values: ["cert-manager"] },
108
+ { key: "app.kubernetes.io/component", operator: "In", values: ["cainjector"] },
109
+ { key: "app.kubernetes.io/instance", operator: "In", values: [name] },
110
+ ],
111
+ },
112
+ topologyKey: "kubernetes.io/hostname",
113
+ },
114
+ },
115
+ ],
116
+ },
117
+ },
118
+ resources: {
119
+ requests: { memory: "128Mi" },
120
+ limits: { memory: "384Mi" },
121
+ },
122
+ },
123
+ prometheus: { servicemonitor: { enabled: true } },
124
+ affinity: {
125
+ podAntiAffinity: {
126
+ preferredDuringSchedulingIgnoredDuringExecution: [
127
+ {
128
+ weight: 100,
129
+ podAffinityTerm: {
130
+ labelSelector: {
131
+ matchExpressions: [
132
+ { key: "app.kubernetes.io/name", operator: "In", values: ["cert-manager"] },
133
+ { key: "app.kubernetes.io/component", operator: "In", values: ["controller"] },
134
+ { key: "app.kubernetes.io/instance", operator: "In", values: [name] },
135
+ ],
136
+ },
137
+ topologyKey: "kubernetes.io/hostname",
138
+ },
139
+ },
140
+ ],
141
+ },
142
+ },
143
+ resources: {
144
+ requests: { memory: "128Mi" },
145
+ limits: { memory: "384Mi" },
146
+ },
147
+ },
148
+ },
149
+ opts
150
+ );
151
+
152
+ this.clusterIssuers = pulumi.all([args.letsencryptCloudflare]).apply(([letsencryptCloudflare]) => {
153
+ const clusterIssuers: { [key: string]: pulumi.Output<string> } = {};
154
+
155
+ clusterIssuers.selfSigned = this.selfSignedIssuer(name, metadata, opts).metadata.name;
156
+
157
+ if (letsencryptCloudflare !== undefined) {
158
+ clusterIssuers.letsencrypt = this.letsencryptCloudflareIssuer(
159
+ name,
160
+ metadata,
161
+ letsencryptCloudflare,
162
+ opts
163
+ ).metadata.name;
164
+ }
165
+
166
+ return clusterIssuers;
167
+ });
168
+
169
+ this.grafanaDashboard = new Dashboard(
170
+ `${name}-grafana-dashboard`,
171
+ {
172
+ metadata: { ...metadata, name: pulumi.interpolate`${name}-grafana-dashboard` },
173
+ name: "cert-manager",
174
+ // eslint-disable-next-line security/detect-non-literal-fs-filename
175
+ data: fs.readFileSync(path.join(__dirname, "assets", "dashboard.json"), "utf-8"),
176
+ },
177
+ opts
178
+ );
179
+
180
+ this.registerOutputs();
181
+ }
182
+
183
+ private selfSignedIssuer(
184
+ name: string,
185
+ metadata: k8s.types.input.meta.v1.ObjectMeta,
186
+ opts?: pulumi.ComponentResourceOptions
187
+ ): pulumi.Output<ClusterIssuer> {
188
+ return pulumi.output(
189
+ new ClusterIssuer(
190
+ `${name}-self-signed`,
191
+ {
192
+ metadata: { ...metadata, name: "self-signed" },
193
+ spec: { selfSigned: {} },
194
+ },
195
+ { ...opts, dependsOn: [this.helmRelease] }
196
+ )
197
+ );
198
+ }
199
+
200
+ private letsencryptCloudflareIssuer(
201
+ name: string,
202
+ metadata: k8s.types.input.meta.v1.ObjectMeta,
203
+ args: pulumi.Input<LetsEncryptCloudflareArgs>,
204
+ opts?: pulumi.ComponentResourceOptions
205
+ ): pulumi.Output<ClusterIssuer> {
206
+ return pulumi.all([args]).apply(([args]) => {
207
+ const secret = new k8s.core.v1.Secret(
208
+ `${name}-cloudflare`,
209
+ {
210
+ metadata: { ...metadata, name: "cloudflare" },
211
+ stringData: {
212
+ apiToken: args.token,
213
+ },
214
+ },
215
+ opts
216
+ );
217
+
218
+ return new ClusterIssuer(
219
+ `${name}-cloudflare`,
220
+ {
221
+ metadata: { ...metadata, name: "letsencrypt" },
222
+ spec: {
223
+ acme: {
224
+ email: args.email,
225
+ server: "https://acme-v02.api.letsencrypt.org/directory",
226
+ privateKeySecretRef: { name: "letsencrypt" },
227
+ solvers: [
228
+ {
229
+ dns01: {
230
+ cloudflare: {
231
+ email: args.email,
232
+ apiTokenSecretRef: { name: secret.metadata.name, key: "apiToken" },
233
+ },
234
+ },
235
+ },
236
+ ],
237
+ },
238
+ },
239
+ },
240
+ { ...opts, dependsOn: [this.helmRelease] }
241
+ );
242
+ });
243
+ }
244
+ }
@@ -0,0 +1,78 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+
3
+ export class ComponentResource extends pulumi.ComponentResource {
4
+ private readonly _opts: pulumi.ComponentResourceOptions;
5
+
6
+ /**
7
+ * Creates and registers a new component resource. [type] is the fully qualified type token and
8
+ * [name] is the "name" part to use in creating a stable and globally unique URN for the object.
9
+ * [opts.parent] is the optional parent for this component, and [opts.dependsOn] is an optional
10
+ * list of other resources that this resource depends on, controlling the order in which we
11
+ * perform resource operations.
12
+ *
13
+ * @param type The type of the resource.
14
+ * @param name The _unique_ name of the resource.
15
+ * @param args Information passed to [initialize] method.
16
+ * @param opts A bag of options that control this resource's behavior.
17
+ * @param remote True if this is a remote component resource.
18
+ */
19
+ constructor(
20
+ type: string,
21
+ name: string,
22
+ args?: pulumi.Inputs,
23
+ opts?: pulumi.ComponentResourceOptions,
24
+ remote?: boolean
25
+ ) {
26
+ super(type, name, args, opts, remote);
27
+
28
+ if (opts === undefined) {
29
+ opts = {};
30
+ }
31
+
32
+ this._opts = { ...opts, ...{ parent: this } };
33
+ }
34
+
35
+ opts(provider?: any, opts?: pulumi.ComponentResourceOptions): pulumi.ComponentResourceOptions {
36
+ opts = { ...this._opts, ...opts };
37
+
38
+ delete opts.provider;
39
+ delete opts.providers;
40
+
41
+ const providers: pulumi.ProviderResource[] = [];
42
+
43
+ if (this._opts.provider !== undefined) {
44
+ providers.push(this._opts.provider);
45
+ }
46
+
47
+ if (this._opts.providers !== undefined) {
48
+ const providersRecords = this._opts.providers as Record<string, pulumi.ProviderResource>;
49
+
50
+ if (providersRecords != null) {
51
+ for (const p in providersRecords) {
52
+ // eslint-disable-next-line security/detect-object-injection
53
+ providers.push(providersRecords[p]);
54
+ }
55
+ }
56
+
57
+ const providersList = this._opts.providers as pulumi.ProviderResource[];
58
+
59
+ if (providersList != null) {
60
+ for (const p of providersList) {
61
+ providers.push(p);
62
+ }
63
+ }
64
+ }
65
+
66
+ if (provider !== undefined) {
67
+ for (const p of providers) {
68
+ if (p instanceof provider) {
69
+ opts.provider = p;
70
+
71
+ break;
72
+ }
73
+ }
74
+ }
75
+
76
+ return opts;
77
+ }
78
+ }
@@ -1,4 +1,5 @@
1
1
  import { TransformationFunc } from "./types";
2
2
  import { ComponentResource } from "./componentResource";
3
+
4
+
3
5
  export { TransformationFunc, ComponentResource };
4
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+
3
+ export type TransformationFunc = (o: any, opts: pulumi.CustomResourceOptions) => void;