@drunk-pulumi/azure 0.0.19

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 (386) hide show
  1. package/Aks/Helper.d.ts +43 -0
  2. package/Aks/Helper.js +72 -0
  3. package/Aks/Identity.d.ts +14 -0
  4. package/Aks/Identity.js +32 -0
  5. package/Aks/VmSetAutoScale/index.d.ts +16 -0
  6. package/Aks/VmSetAutoScale/index.js +132 -0
  7. package/Aks/VmSetMonitor/index.d.ts +12 -0
  8. package/Aks/VmSetMonitor/index.js +67 -0
  9. package/Aks/index.d.ts +100 -0
  10. package/Aks/index.js +558 -0
  11. package/Apim/ApiProduct/Api.d.ts +35 -0
  12. package/Apim/ApiProduct/Api.js +131 -0
  13. package/Apim/ApiProduct/OpenApi.d.ts +85 -0
  14. package/Apim/ApiProduct/OpenApi.js +3 -0
  15. package/Apim/ApiProduct/PolicyBuilder.d.ts +79 -0
  16. package/Apim/ApiProduct/PolicyBuilder.js +361 -0
  17. package/Apim/ApiProduct/Product.d.ts +8 -0
  18. package/Apim/ApiProduct/Product.js +63 -0
  19. package/Apim/ApiProduct/SwaggerHelper.d.ts +6 -0
  20. package/Apim/ApiProduct/SwaggerHelper.js +44 -0
  21. package/Apim/ApiProduct/index.d.ts +9 -0
  22. package/Apim/ApiProduct/index.js +22 -0
  23. package/Apim/Helpers.d.ts +0 -0
  24. package/Apim/Helpers.js +2 -0
  25. package/Apim/HookProxy/index.d.ts +20 -0
  26. package/Apim/HookProxy/index.js +27 -0
  27. package/Apim/index.d.ts +22 -0
  28. package/Apim/index.js +118 -0
  29. package/Apps/LogicApp.d.ts +12 -0
  30. package/Apps/LogicApp.js +19 -0
  31. package/Automation/AutoAccount.d.ts +5 -0
  32. package/Automation/AutoAccount.js +20 -0
  33. package/AzAd/B2C.d.ts +9 -0
  34. package/AzAd/B2C.js +38 -0
  35. package/AzAd/ConditionalPolicies/index.d.ts +0 -0
  36. package/AzAd/ConditionalPolicies/index.js +2 -0
  37. package/AzAd/EnvRoles.d.ts +12 -0
  38. package/AzAd/EnvRoles.js +62 -0
  39. package/AzAd/GraphDefinition.d.ts +14 -0
  40. package/AzAd/GraphDefinition.js +5136 -0
  41. package/AzAd/Group.d.ts +29 -0
  42. package/AzAd/Group.js +70 -0
  43. package/AzAd/Helper.d.ts +18 -0
  44. package/AzAd/Helper.js +37 -0
  45. package/AzAd/Identities/AzDevOps.d.ts +23 -0
  46. package/AzAd/Identities/AzDevOps.js +61 -0
  47. package/AzAd/Identities/AzUserAdRevertSync.d.ts +14 -0
  48. package/AzAd/Identities/AzUserAdRevertSync.js +18 -0
  49. package/AzAd/Identity.d.ts +51 -0
  50. package/AzAd/Identity.js +133 -0
  51. package/AzAd/ManagedIdentity.d.ts +6 -0
  52. package/AzAd/ManagedIdentity.js +23 -0
  53. package/AzAd/Role.d.ts +19 -0
  54. package/AzAd/Role.js +25 -0
  55. package/AzAd/RoleAssignment.d.ts +79 -0
  56. package/AzAd/RoleAssignment.js +48 -0
  57. package/AzAd/RolesBuiltIn.d.ts +62 -0
  58. package/AzAd/RolesBuiltIn.js +13841 -0
  59. package/Cdn/index.d.ts +11 -0
  60. package/Cdn/index.js +47 -0
  61. package/Certificate/index.d.ts +41 -0
  62. package/Certificate/index.js +156 -0
  63. package/Certificate/p12.d.ts +5 -0
  64. package/Certificate/p12.js +37 -0
  65. package/Common/AppConfigs/dotnetConfig.d.ts +15 -0
  66. package/Common/AppConfigs/dotnetConfig.js +20 -0
  67. package/Common/AutoTags.d.ts +1 -0
  68. package/Common/AutoTags.js +24 -0
  69. package/Common/AzureEnv.d.ts +37 -0
  70. package/Common/AzureEnv.js +94 -0
  71. package/Common/ConfigHelper.d.ts +5 -0
  72. package/Common/ConfigHelper.js +14 -0
  73. package/Common/GlobalEnv.d.ts +14 -0
  74. package/Common/GlobalEnv.js +38 -0
  75. package/Common/Helpers.d.ts +10 -0
  76. package/Common/Helpers.js +30 -0
  77. package/Common/Location.d.ts +4 -0
  78. package/Common/Location.js +23 -0
  79. package/Common/LocationBuiltIn.d.ts +81 -0
  80. package/Common/LocationBuiltIn.js +1925 -0
  81. package/Common/Naming/index.d.ts +62 -0
  82. package/Common/Naming/index.js +146 -0
  83. package/Common/ResourceEnv.d.ts +16 -0
  84. package/Common/ResourceEnv.js +29 -0
  85. package/Common/StackEnv.d.ts +4 -0
  86. package/Common/StackEnv.js +22 -0
  87. package/Common/index.d.ts +5 -0
  88. package/Common/index.js +9 -0
  89. package/ContainerRegistry/Helper.d.ts +23 -0
  90. package/ContainerRegistry/Helper.js +47 -0
  91. package/ContainerRegistry/index.d.ts +28 -0
  92. package/ContainerRegistry/index.js +103 -0
  93. package/Core/Helper.d.ts +16 -0
  94. package/Core/Helper.js +37 -0
  95. package/Core/KeyGenetators.d.ts +33 -0
  96. package/Core/KeyGenetators.js +66 -0
  97. package/Core/Locker.d.ts +13 -0
  98. package/Core/Locker.js +14 -0
  99. package/Core/Random.d.ts +40 -0
  100. package/Core/Random.js +83 -0
  101. package/Core/ResourceCreator.d.ts +17 -0
  102. package/Core/ResourceCreator.js +48 -0
  103. package/Core/ResourceGroup.d.ts +13 -0
  104. package/Core/ResourceGroup.js +45 -0
  105. package/CosmosDb/index.d.ts +33 -0
  106. package/CosmosDb/index.js +129 -0
  107. package/CustomRoles/index.d.ts +5 -0
  108. package/CustomRoles/index.js +27 -0
  109. package/IOT/Hub/index.d.ts +32 -0
  110. package/IOT/Hub/index.js +208 -0
  111. package/KeyVault/CustomHelper.d.ts +35 -0
  112. package/KeyVault/CustomHelper.js +40 -0
  113. package/KeyVault/Helper.d.ts +33 -0
  114. package/KeyVault/Helper.js +58 -0
  115. package/KeyVault/VaultAccess.d.ts +15 -0
  116. package/KeyVault/VaultAccess.js +47 -0
  117. package/KeyVault/VaultPermissions.d.ts +26 -0
  118. package/KeyVault/VaultPermissions.js +169 -0
  119. package/KeyVault/index.d.ts +28 -0
  120. package/KeyVault/index.js +136 -0
  121. package/KubeX/AcrSecret.d.ts +15 -0
  122. package/KubeX/AcrSecret.js +31 -0
  123. package/KubeX/Apps/AstroPage.d.ts +12 -0
  124. package/KubeX/Apps/AstroPage.js +33 -0
  125. package/KubeX/Apps/KafKa.d.ts +6 -0
  126. package/KubeX/Apps/KafKa.js +13 -0
  127. package/KubeX/Apps/Nobelium.d.ts +13 -0
  128. package/KubeX/Apps/Nobelium.js +37 -0
  129. package/KubeX/Apps/Wikijs.d.ts +30 -0
  130. package/KubeX/Apps/Wikijs.js +54 -0
  131. package/KubeX/Apps/WordPress.d.ts +24 -0
  132. package/KubeX/Apps/WordPress.js +55 -0
  133. package/KubeX/Apps/YarpProxy/index.d.ts +17 -0
  134. package/KubeX/Apps/YarpProxy/index.js +107 -0
  135. package/KubeX/Apps/YarpProxy/type.d.ts +55 -0
  136. package/KubeX/Apps/YarpProxy/type.js +3 -0
  137. package/KubeX/CertHelper.d.ts +1 -0
  138. package/KubeX/CertHelper.js +9 -0
  139. package/KubeX/CertImports.d.ts +19 -0
  140. package/KubeX/CertImports.js +70 -0
  141. package/KubeX/CloudFlare/CertCreator.d.ts +19 -0
  142. package/KubeX/CloudFlare/CertCreator.js +90 -0
  143. package/KubeX/CloudFlare/CertImports.d.ts +17 -0
  144. package/KubeX/CloudFlare/CertImports.js +34 -0
  145. package/KubeX/CloudFlare/DynamicDns.d.ts +21 -0
  146. package/KubeX/CloudFlare/DynamicDns.js +39 -0
  147. package/KubeX/CloudFlare/Tunnel-Helm.d.ts +17 -0
  148. package/KubeX/CloudFlare/Tunnel-Helm.js +12 -0
  149. package/KubeX/CloudFlare/Tunnel.d.ts +23 -0
  150. package/KubeX/CloudFlare/Tunnel.js +54 -0
  151. package/KubeX/CloudFlare/index.d.ts +13 -0
  152. package/KubeX/CloudFlare/index.js +36 -0
  153. package/KubeX/Clusters/K3s/AutoUpgradeController/index.d.ts +6 -0
  154. package/KubeX/Clusters/K3s/AutoUpgradeController/index.js +60 -0
  155. package/KubeX/ConfigSecret.d.ts +24 -0
  156. package/KubeX/ConfigSecret.js +38 -0
  157. package/KubeX/Core/CertManager/index.d.ts +24 -0
  158. package/KubeX/Core/CertManager/index.js +96 -0
  159. package/KubeX/Core/KsCertSecret.d.ts +12 -0
  160. package/KubeX/Core/KsCertSecret.js +22 -0
  161. package/KubeX/Core/KsSecret.d.ts +9 -0
  162. package/KubeX/Core/KsSecret.js +12 -0
  163. package/KubeX/Core/LoadBalancer/MetalLB.d.ts +7 -0
  164. package/KubeX/Core/LoadBalancer/MetalLB.js +21 -0
  165. package/KubeX/Core/Monitoring/index.d.ts +22 -0
  166. package/KubeX/Core/Monitoring/index.js +322 -0
  167. package/KubeX/Core/Namespace.d.ts +12 -0
  168. package/KubeX/Core/Namespace.js +41 -0
  169. package/KubeX/Core/Nginx/index.d.ts +60 -0
  170. package/KubeX/Core/Nginx/index.js +109 -0
  171. package/KubeX/Core/OAuthProxy/index.d.ts +0 -0
  172. package/KubeX/Core/OAuthProxy/index.js +3 -0
  173. package/KubeX/Core/ResourceQuota.d.ts +12 -0
  174. package/KubeX/Core/ResourceQuota.js +13 -0
  175. package/KubeX/Core/SecurityRules.d.ts +34 -0
  176. package/KubeX/Core/SecurityRules.js +93 -0
  177. package/KubeX/Core/StorageClass/azureBlob.d.ts +20 -0
  178. package/KubeX/Core/StorageClass/azureBlob.js +77 -0
  179. package/KubeX/Core/StorageClass/azureFile.d.ts +17 -0
  180. package/KubeX/Core/StorageClass/azureFile.js +45 -0
  181. package/KubeX/Core/StorageClass/index.d.ts +13 -0
  182. package/KubeX/Core/StorageClass/index.js +25 -0
  183. package/KubeX/Core/index.d.ts +57 -0
  184. package/KubeX/Core/index.js +94 -0
  185. package/KubeX/Databases/MariaDb.d.ts +11 -0
  186. package/KubeX/Databases/MariaDb.js +39 -0
  187. package/KubeX/Databases/MySql.V2.d.ts +11 -0
  188. package/KubeX/Databases/MySql.V2.js +40 -0
  189. package/KubeX/Databases/MySql.d.ts +13 -0
  190. package/KubeX/Databases/MySql.js +55 -0
  191. package/KubeX/Databases/PostgreSql/PostgreSQL-HA.d.ts +10 -0
  192. package/KubeX/Databases/PostgreSql/PostgreSQL-HA.js +47 -0
  193. package/KubeX/Databases/PostgreSql/PostgreSQL.d.ts +10 -0
  194. package/KubeX/Databases/PostgreSql/PostgreSQL.js +51 -0
  195. package/KubeX/Databases/PostgreSql/PostgreSql.v1.d.ts +13 -0
  196. package/KubeX/Databases/PostgreSql/PostgreSql.v1.js +56 -0
  197. package/KubeX/Databases/PostgreSql/index.d.ts +17 -0
  198. package/KubeX/Databases/PostgreSql/index.js +6 -0
  199. package/KubeX/Databases/RedisCache.d.ts +14 -0
  200. package/KubeX/Databases/RedisCache.js +65 -0
  201. package/KubeX/Databases/SqlServer.d.ts +15 -0
  202. package/KubeX/Databases/SqlServer.js +77 -0
  203. package/KubeX/Deployment/PodAutoscaler.d.ts +14 -0
  204. package/KubeX/Deployment/PodAutoscaler.js +51 -0
  205. package/KubeX/Deployment/index.d.ts +136 -0
  206. package/KubeX/Deployment/index.js +306 -0
  207. package/KubeX/Helpers.d.ts +4 -0
  208. package/KubeX/Helpers.js +17 -0
  209. package/KubeX/Ingress/AppGatewayIngress.d.ts +2 -0
  210. package/KubeX/Ingress/AppGatewayIngress.js +4 -0
  211. package/KubeX/Ingress/Conts.d.ts +13 -0
  212. package/KubeX/Ingress/Conts.js +18 -0
  213. package/KubeX/Ingress/NginxIngress.d.ts +3 -0
  214. package/KubeX/Ingress/NginxIngress.js +186 -0
  215. package/KubeX/Ingress/NginxProxy.d.ts +21 -0
  216. package/KubeX/Ingress/NginxProxy.js +43 -0
  217. package/KubeX/Ingress/TraefikIngress/CustomHeader.d.ts +15 -0
  218. package/KubeX/Ingress/TraefikIngress/CustomHeader.js +15 -0
  219. package/KubeX/Ingress/TraefikIngress/index.d.ts +11 -0
  220. package/KubeX/Ingress/TraefikIngress/index.js +95 -0
  221. package/KubeX/Ingress/index.d.ts +5 -0
  222. package/KubeX/Ingress/index.js +12 -0
  223. package/KubeX/Ingress/type.d.ts +82 -0
  224. package/KubeX/Ingress/type.js +3 -0
  225. package/KubeX/Providers/index.d.ts +8 -0
  226. package/KubeX/Providers/index.js +15 -0
  227. package/KubeX/Storage/Longhorn/index.d.ts +15 -0
  228. package/KubeX/Storage/Longhorn/index.js +54 -0
  229. package/KubeX/Storage/index.d.ts +25 -0
  230. package/KubeX/Storage/index.js +79 -0
  231. package/KubeX/Tools/AWS/LocalStack.d.ts +7 -0
  232. package/KubeX/Tools/AWS/LocalStack.js +29 -0
  233. package/KubeX/Tools/AWS/S3.d.ts +6 -0
  234. package/KubeX/Tools/AWS/S3.js +44 -0
  235. package/KubeX/Tools/AWS/index.d.ts +7 -0
  236. package/KubeX/Tools/AWS/index.js +14 -0
  237. package/KubeX/Tools/AppHealthzMonitor.d.ts +18 -0
  238. package/KubeX/Tools/AppHealthzMonitor.js +52 -0
  239. package/KubeX/Tools/ArgoCD/index.d.ts +17 -0
  240. package/KubeX/Tools/ArgoCD/index.js +131 -0
  241. package/KubeX/Tools/Dapr/Storage.d.ts +66 -0
  242. package/KubeX/Tools/Dapr/Storage.js +70 -0
  243. package/KubeX/Tools/Dapr/index.d.ts +10 -0
  244. package/KubeX/Tools/Dapr/index.js +31 -0
  245. package/KubeX/Tools/Echo-App.d.ts +3 -0
  246. package/KubeX/Tools/Echo-App.js +21 -0
  247. package/KubeX/Tools/Gitea/GiteaRepo.d.ts +72 -0
  248. package/KubeX/Tools/Gitea/GiteaRepo.js +184 -0
  249. package/KubeX/Tools/Gitea/GiteaRunner.d.ts +11 -0
  250. package/KubeX/Tools/Gitea/GiteaRunner.js +37 -0
  251. package/KubeX/Tools/Gitea/GiteaRunner.v1.d.ts +11 -0
  252. package/KubeX/Tools/Gitea/GiteaRunner.v1.js +123 -0
  253. package/KubeX/Tools/HarborRepo.d.ts +29 -0
  254. package/KubeX/Tools/HarborRepo.js +78 -0
  255. package/KubeX/Tools/HelloWorld.d.ts +3 -0
  256. package/KubeX/Tools/HelloWorld.js +21 -0
  257. package/KubeX/Tools/KubeCleanup.d.ts +9 -0
  258. package/KubeX/Tools/KubeCleanup.js +34 -0
  259. package/KubeX/Tools/NoIp.d.ts +13 -0
  260. package/KubeX/Tools/NoIp.js +24 -0
  261. package/KubeX/Tools/OpenLDAP/index.d.ts +12 -0
  262. package/KubeX/Tools/OpenLDAP/index.js +56 -0
  263. package/KubeX/Tools/OutlineVpn/index.d.ts +25 -0
  264. package/KubeX/Tools/OutlineVpn/index.js +256 -0
  265. package/KubeX/Tools/SqlPad.d.ts +29 -0
  266. package/KubeX/Tools/SqlPad.js +133 -0
  267. package/KubeX/Tools/ToolPod.d.ts +10 -0
  268. package/KubeX/Tools/ToolPod.js +40 -0
  269. package/KubeX/Tools/UptimeKuma.d.ts +6 -0
  270. package/KubeX/Tools/UptimeKuma.js +38 -0
  271. package/KubeX/Tools/index.d.ts +27 -0
  272. package/KubeX/Tools/index.js +35 -0
  273. package/KubeX/VairableResolvers/index.d.ts +15 -0
  274. package/KubeX/VairableResolvers/index.js +49 -0
  275. package/KubeX/kx/index.d.ts +114 -0
  276. package/KubeX/kx/index.js +423 -0
  277. package/KubeX/types.d.ts +49 -0
  278. package/KubeX/types.js +3 -0
  279. package/Logs/AppInsight.d.ts +16 -0
  280. package/Logs/AppInsight.js +48 -0
  281. package/Logs/Helpers.d.ts +50 -0
  282. package/Logs/Helpers.js +95 -0
  283. package/Logs/LogAnalytics.d.ts +17 -0
  284. package/Logs/LogAnalytics.js +54 -0
  285. package/Logs/WebTest.d.ts +13 -0
  286. package/Logs/WebTest.js +68 -0
  287. package/Logs/index.d.ts +42 -0
  288. package/Logs/index.js +69 -0
  289. package/MySql/index.d.ts +20 -0
  290. package/MySql/index.js +93 -0
  291. package/Postgresql/index.d.ts +20 -0
  292. package/Postgresql/index.js +93 -0
  293. package/ReadMe.md +36 -0
  294. package/RedisCache/index.d.ts +9 -0
  295. package/RedisCache/index.js +79 -0
  296. package/ServiceBus/ServiceBusHelper.d.ts +21 -0
  297. package/ServiceBus/ServiceBusHelper.js +35 -0
  298. package/ServiceBus/index.d.ts +98 -0
  299. package/ServiceBus/index.js +396 -0
  300. package/SignalR/index.d.ts +20 -0
  301. package/SignalR/index.js +114 -0
  302. package/Sql/Auditing.d.ts +0 -0
  303. package/Sql/Auditing.js +2 -0
  304. package/Sql/Helper.d.ts +9 -0
  305. package/Sql/Helper.js +11 -0
  306. package/Sql/SqlDb.d.ts +14 -0
  307. package/Sql/SqlDb.js +42 -0
  308. package/Sql/index.d.ts +44 -0
  309. package/Sql/index.js +236 -0
  310. package/Storage/CdnEndpoint.d.ts +12 -0
  311. package/Storage/CdnEndpoint.js +62 -0
  312. package/Storage/CdnRules.d.ts +6 -0
  313. package/Storage/CdnRules.js +134 -0
  314. package/Storage/Helper.d.ts +28 -0
  315. package/Storage/Helper.js +66 -0
  316. package/Storage/ManagementRules.d.ts +70 -0
  317. package/Storage/ManagementRules.js +32 -0
  318. package/Storage/index.d.ts +55 -0
  319. package/Storage/index.js +264 -0
  320. package/VM/index.d.ts +37 -0
  321. package/VM/index.js +138 -0
  322. package/VNet/Bastion.d.ts +8 -0
  323. package/VNet/Bastion.js +30 -0
  324. package/VNet/Firewall.d.ts +27 -0
  325. package/VNet/Firewall.js +87 -0
  326. package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +20 -0
  327. package/VNet/FirewallPolicies/AksFirewallPolicy.js +241 -0
  328. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +14 -0
  329. package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +303 -0
  330. package/VNet/FirewallPolicy.d.ts +28 -0
  331. package/VNet/FirewallPolicy.js +110 -0
  332. package/VNet/FirewallRules/AksFirewallRules.d.ts +24 -0
  333. package/VNet/FirewallRules/AksFirewallRules.js +250 -0
  334. package/VNet/FirewallRules/DefaultRules.d.ts +2 -0
  335. package/VNet/FirewallRules/DefaultRules.js +23 -0
  336. package/VNet/FirewallRules/types.d.ts +20 -0
  337. package/VNet/FirewallRules/types.js +5 -0
  338. package/VNet/GlobalNetworkPeering.d.ts +9 -0
  339. package/VNet/GlobalNetworkPeering.js +17 -0
  340. package/VNet/Helper.d.ts +33 -0
  341. package/VNet/Helper.js +86 -0
  342. package/VNet/IpAddress.d.ts +17 -0
  343. package/VNet/IpAddress.js +38 -0
  344. package/VNet/IpAddressPrefix.d.ts +22 -0
  345. package/VNet/IpAddressPrefix.js +42 -0
  346. package/VNet/NSGRules/AzADService.d.ts +10 -0
  347. package/VNet/NSGRules/AzADService.js +45 -0
  348. package/VNet/NetworkPeering.d.ts +10 -0
  349. package/VNet/NetworkPeering.js +29 -0
  350. package/VNet/PrivateDns.d.ts +33 -0
  351. package/VNet/PrivateDns.js +64 -0
  352. package/VNet/PrivateEndpoint.d.ts +9 -0
  353. package/VNet/PrivateEndpoint.js +71 -0
  354. package/VNet/PublicDns.d.ts +21 -0
  355. package/VNet/PublicDns.js +59 -0
  356. package/VNet/RouteTable.d.ts +13 -0
  357. package/VNet/RouteTable.js +23 -0
  358. package/VNet/SecurityGroup.d.ts +8 -0
  359. package/VNet/SecurityGroup.js +13 -0
  360. package/VNet/Subnet.d.ts +26 -0
  361. package/VNet/Subnet.js +48 -0
  362. package/VNet/VirtualWAN.d.ts +25 -0
  363. package/VNet/VirtualWAN.js +40 -0
  364. package/VNet/Vnet.d.ts +51 -0
  365. package/VNet/Vnet.js +196 -0
  366. package/VNet/index.d.ts +65 -0
  367. package/VNet/index.js +198 -0
  368. package/Web/AppCertOrder.d.ts +16 -0
  369. package/Web/AppCertOrder.js +34 -0
  370. package/Web/AppConfig.d.ts +16 -0
  371. package/Web/AppConfig.js +79 -0
  372. package/Web/AppGateway.d.ts +15 -0
  373. package/Web/AppGateway.js +32 -0
  374. package/Web/FuncApp.d.ts +12 -0
  375. package/Web/FuncApp.js +24 -0
  376. package/Web/Helpers.d.ts +6 -0
  377. package/Web/Helpers.js +36 -0
  378. package/Web/WebAppPlan.d.ts +7 -0
  379. package/Web/WebAppPlan.js +26 -0
  380. package/Web/types.d.ts +169 -0
  381. package/Web/types.js +3 -0
  382. package/package.json +34 -0
  383. package/types.d.ts +69 -0
  384. package/types.js +3 -0
  385. package/z_tests/_tools/Mocks.d.ts +2 -0
  386. package/z_tests/_tools/Mocks.js +47 -0
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const k8s = require("@pulumi/kubernetes");
4
+ const NginxIngress_1 = require("./NginxIngress");
5
+ const Helpers_1 = require("../../Common/Helpers");
6
+ const CertHelper_1 = require("../CertHelper");
7
+ exports.default = ({ name, namespace, host, certManagerIssuer = true, cors, proxyUrl, proxyTlsSecretName, ingressClass, port, dependsOn, provider, ...others }) => {
8
+ if (!port)
9
+ port = proxyUrl.includes('http:') ? 80 : 443;
10
+ const service = new k8s.core.v1.Service(name, {
11
+ metadata: {
12
+ name,
13
+ namespace,
14
+ labels: { app: name },
15
+ },
16
+ spec: {
17
+ type: 'ExternalName',
18
+ externalName: proxyUrl.replace('https://', '').replace('http://', ''),
19
+ //externalIPs: externalIPs || undefined, //because of this issue https://github.com/coredns/coredns/issues/2324#issuecomment-484005202
20
+ ports: [{ port }],
21
+ },
22
+ }, { dependsOn, provider });
23
+ return (0, NginxIngress_1.default)({
24
+ name,
25
+ className: ingressClass,
26
+ certManagerIssuer,
27
+ hostNames: [host],
28
+ tlsSecretName: (0, CertHelper_1.getTlsName)((0, Helpers_1.getRootDomainFromUrl)(host), certManagerIssuer),
29
+ responseHeaders: { 'x-backend-service-name': name },
30
+ cors: cors && { origins: cors },
31
+ proxy: {
32
+ backendProtocol: port === 80 ? 'HTTP' : 'HTTPS',
33
+ backendUrl: proxyUrl,
34
+ sslVerify: false,
35
+ tlsSecretName: proxyTlsSecretName,
36
+ },
37
+ service,
38
+ ...others,
39
+ dependsOn,
40
+ provider,
41
+ });
42
+ };
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmdpbnhQcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9JbmdyZXNzL05naW54UHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQ0FBMEM7QUFFMUMsaURBQTBDO0FBQzFDLGtEQUE0RDtBQUU1RCw4Q0FBMkM7QUF1QjNDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixpQkFBaUIsR0FBRyxJQUFJLEVBQ3hCLElBQUksRUFDSixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixJQUFJLEVBRUosU0FBUyxFQUNULFFBQVEsRUFDUixHQUFHLE1BQU0sRUFDSCxFQUFFLEVBQUU7SUFDVixJQUFJLENBQUMsSUFBSTtRQUFFLElBQUksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUV4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FDckMsSUFBSSxFQUNKO1FBQ0UsUUFBUSxFQUFFO1lBQ1IsSUFBSTtZQUNKLFNBQVM7WUFDVCxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1NBQ3RCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGNBQWM7WUFDcEIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3JFLHNJQUFzSTtZQUN0SSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2xCO0tBQ0YsRUFDRCxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FDeEIsQ0FBQztJQUVGLE9BQU8sSUFBQSxzQkFBWSxFQUFDO1FBQ2xCLElBQUk7UUFFSixTQUFTLEVBQUUsWUFBWTtRQUN2QixpQkFBaUI7UUFDakIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBRWpCLGFBQWEsRUFBRSxJQUFBLHVCQUFVLEVBQUMsSUFBQSw4QkFBb0IsRUFBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztRQUV4RSxlQUFlLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUU7UUFDbkQsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDL0IsS0FBSyxFQUFFO1lBQ0wsZUFBZSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztZQUMvQyxVQUFVLEVBQUUsUUFBUTtZQUNwQixTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUUsa0JBQWtCO1NBQ2xDO1FBRUQsT0FBTztRQUVQLEdBQUcsTUFBTTtRQUNULFNBQVM7UUFDVCxRQUFRO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,15 @@
1
+ import * as k8s from '@pulumi/kubernetes';
2
+ import { DefaultK8sArgs } from '../../types';
3
+ interface CustomHeaderProps extends Omit<DefaultK8sArgs, 'namespace'> {
4
+ headers?: {
5
+ [key: string]: any;
6
+ };
7
+ customRequestHeaders?: {
8
+ [key: string]: any;
9
+ };
10
+ customResponseHeaders?: {
11
+ [key: string]: any;
12
+ };
13
+ }
14
+ declare const _default: ({ name, headers, customRequestHeaders, customResponseHeaders, ...others }: CustomHeaderProps) => k8s.apiextensions.CustomResource;
15
+ export default _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const k8s = require("@pulumi/kubernetes");
4
+ exports.default = ({ name = 'traefik', headers, customRequestHeaders, customResponseHeaders, ...others }) => new k8s.apiextensions.CustomResource(name, {
5
+ apiVersion: 'traefik.containo.us/v1alpha1',
6
+ kind: 'Middleware',
7
+ metadata: {
8
+ name,
9
+ annotations: { 'pulumi.com/skipAwait': 'true' },
10
+ },
11
+ spec: {
12
+ headers: { ...headers, customRequestHeaders, customResponseHeaders },
13
+ },
14
+ }, { ...others });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0t1YmVYL0luZ3Jlc3MvVHJhZWZpa0luZ3Jlc3MvQ3VzdG9tSGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQTBDO0FBUzFDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsU0FBUyxFQUNoQixPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixHQUFHLE1BQU0sRUFDUyxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FDbEMsSUFBSSxFQUNKO0lBQ0UsVUFBVSxFQUFFLDhCQUE4QjtJQUMxQyxJQUFJLEVBQUUsWUFBWTtJQUNsQixRQUFRLEVBQUU7UUFDUixJQUFJO1FBQ0osV0FBVyxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFO0tBQ2hEO0lBQ0QsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUU7S0FDckU7Q0FDRixFQUNELEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FDZCxDQUFDIn0=
@@ -0,0 +1,11 @@
1
+ import * as k8s from '@pulumi/kubernetes';
2
+ import { DefaultK8sArgs } from '../../types';
3
+ import { IngressProps } from '../type';
4
+ export interface TraefikTcpIngressProps extends DefaultK8sArgs {
5
+ port: number;
6
+ }
7
+ export declare const TcpIngress: ({ name, namespace, port, ...others }: TraefikTcpIngressProps) => k8s.apiextensions.CustomResource;
8
+ export interface TraefikIngressProps extends IngressProps {
9
+ }
10
+ declare const _default: ({ name, hostNames, allowHttp, tlsSecretName, service, services, certManagerIssuer, cors, ...others }: TraefikIngressProps) => import("@pulumi/kubernetes/networking/v1/ingress").Ingress;
11
+ export default _default;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TcpIngress = void 0;
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const TcpIngress = ({ name = 'traefikTcp', namespace, port, ...others }) => {
6
+ return new k8s.apiextensions.CustomResource(name, {
7
+ apiVersion: 'traefik.containo.us/v1alpha1',
8
+ kind: 'IngressRouteTCP',
9
+ metadata: {
10
+ name,
11
+ namespace,
12
+ annotations: { 'pulumi.com/skipAwait': 'true' },
13
+ },
14
+ spec: {
15
+ entryPoints: [name],
16
+ routes: [
17
+ { match: 'HostSNI(`*`)', kind: 'Rule', services: [{ name, port }] },
18
+ ],
19
+ },
20
+ }, { ...others });
21
+ };
22
+ exports.TcpIngress = TcpIngress;
23
+ exports.default = ({ name = 'traefik', hostNames, allowHttp, tlsSecretName, service, services, certManagerIssuer, cors, ...others }) => {
24
+ const annotations = {
25
+ 'traefik.ingress.kubernetes.io/router.entrypoints': 'websecure,web',
26
+ };
27
+ if (!allowHttp) {
28
+ annotations['ttraefik.ingress.kubernetes.io/router.tls'] = 'true';
29
+ }
30
+ if (certManagerIssuer) {
31
+ if (typeof certManagerIssuer === 'string')
32
+ annotations['cert-manager.io/cluster-issuer'] = certManagerIssuer;
33
+ else
34
+ annotations['kubernetes.io/tls-acme'] = 'true';
35
+ }
36
+ if (cors) {
37
+ const origin = cors.origins.join(',');
38
+ const header = cors.headers
39
+ ? cors.headers.join(',')
40
+ : 'GET,POST,PUT,OPTIONS,DELETE';
41
+ annotations['traefik.ingress.kubernetes.io/custom-response-headers'] = `Access-Control-Allow-Origin:${origin}||Access-Control-Allow-Methods:${header}||Access-Control-Allow-Headers:DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range||Access-Control-Expose-Headers:Content-Length,Content-Range`;
42
+ }
43
+ const servicePaths = services
44
+ ? services.paths.map((s) => ({
45
+ backend: {
46
+ service: {
47
+ name: s.metadata.name,
48
+ port: {
49
+ number: s.spec.ports[0].port,
50
+ },
51
+ },
52
+ },
53
+ path: `${s.path}/(.*)`,
54
+ pathType: 'Prefix',
55
+ }))
56
+ : [
57
+ {
58
+ backend: {
59
+ service: {
60
+ name: service.metadata.name,
61
+ port: {
62
+ number: service.spec.ports[0].port,
63
+ },
64
+ },
65
+ },
66
+ path: '/',
67
+ pathType: 'ImplementationSpecific',
68
+ },
69
+ ];
70
+ return new k8s.networking.v1.Ingress(name, {
71
+ metadata: {
72
+ name,
73
+ namespace: services?.metadata.namespace || service?.metadata.namespace,
74
+ labels: services?.metadata.labels || service?.metadata.labels,
75
+ annotations,
76
+ },
77
+ spec: {
78
+ rules: hostNames.map((hostName) => ({
79
+ host: hostName,
80
+ http: {
81
+ paths: servicePaths,
82
+ },
83
+ })),
84
+ tls: allowHttp
85
+ ? undefined
86
+ : [
87
+ {
88
+ hosts: hostNames,
89
+ secretName: tlsSecretName,
90
+ },
91
+ ],
92
+ },
93
+ }, { ...others });
94
+ };
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9UcmFlZmlrSW5ncmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMEM7QUFRbkMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUN6QixJQUFJLEdBQUcsWUFBWSxFQUNuQixTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsTUFBTSxFQUNjLEVBQUUsRUFBRTtJQUMzQixPQUFPLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQ3pDLElBQUksRUFDSjtRQUNFLFVBQVUsRUFBRSw4QkFBOEI7UUFDMUMsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULFdBQVcsRUFBRSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRTtTQUNoRDtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTthQUNwRTtTQUNGO0tBQ0YsRUFDRCxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQ2QsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXpCVyxRQUFBLFVBQVUsY0F5QnJCO0FBSUYsa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxTQUFTLEVBQ2hCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLElBQUksRUFDSixHQUFHLE1BQU0sRUFDVyxFQUFFLEVBQUU7SUFDeEIsTUFBTSxXQUFXLEdBQUc7UUFDbEIsa0RBQWtELEVBQUUsZUFBZTtLQUM3RCxDQUFDO0lBRVQsSUFBSSxDQUFDLFNB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
@@ -0,0 +1,5 @@
1
+ import NginxIngress from './NginxIngress';
2
+ import TraefikIngress from './TraefikIngress';
3
+ import NginxProxy from './NginxIngress';
4
+ import AppGatewayIngress from './AppGatewayIngress';
5
+ export { NginxIngress, NginxProxy, AppGatewayIngress, TraefikIngress };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TraefikIngress = exports.AppGatewayIngress = exports.NginxProxy = exports.NginxIngress = void 0;
4
+ const NginxIngress_1 = require("./NginxIngress");
5
+ exports.NginxIngress = NginxIngress_1.default;
6
+ const TraefikIngress_1 = require("./TraefikIngress");
7
+ exports.TraefikIngress = TraefikIngress_1.default;
8
+ const NginxIngress_2 = require("./NginxIngress");
9
+ exports.NginxProxy = NginxIngress_2.default;
10
+ const AppGatewayIngress_1 = require("./AppGatewayIngress");
11
+ exports.AppGatewayIngress = AppGatewayIngress_1.default;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBMEM7QUFLakMsdUJBTEYsc0JBQVksQ0FLRTtBQUpyQixxREFBOEM7QUFJUSx5QkFKL0Msd0JBQWMsQ0FJK0M7QUFIcEUsaURBQXdDO0FBR2pCLHFCQUhoQixzQkFBVSxDQUdnQjtBQUZqQywyREFBb0Q7QUFFakIsNEJBRjVCLDJCQUFpQixDQUU0QiJ9
@@ -0,0 +1,82 @@
1
+ import { Input, Resource } from '@pulumi/pulumi';
2
+ import * as kx from '../kx';
3
+ import * as k8s from '@pulumi/kubernetes';
4
+ import { defaultResponseHeaders } from './Conts';
5
+ export interface ServicePort {
6
+ appProtocol?: Input<string>;
7
+ name?: Input<string>;
8
+ nodePort?: Input<number>;
9
+ port?: Input<number>;
10
+ protocol?: Input<string>;
11
+ targetPort?: Input<number | string>;
12
+ }
13
+ export type IngressClassName = 'public' | 'private' | 'nginx';
14
+ export type IngressCanary = {
15
+ headerKey?: Input<string>;
16
+ headerValue?: Input<string>;
17
+ headerPattern?: Input<string>;
18
+ };
19
+ export type CertManagerIssuerTypes = boolean | 'letsencrypt-staging' | 'letsencrypt-prod';
20
+ type SimpleServiceType = {
21
+ metadata: {
22
+ name: Input<string>;
23
+ namespace: Input<string>;
24
+ labels?: Input<{
25
+ [key: string]: Input<string>;
26
+ }>;
27
+ };
28
+ spec: {
29
+ ports: Array<ServicePort>;
30
+ };
31
+ };
32
+ type ServiceType = kx.Service | k8s.core.v1.Service | SimpleServiceType;
33
+ interface ServicesType extends SimpleServiceType {
34
+ path: string;
35
+ }
36
+ export interface IngressProps {
37
+ name: string;
38
+ className?: IngressClassName;
39
+ certManagerIssuer?: CertManagerIssuerTypes;
40
+ hostNames: Input<string>[];
41
+ allowHttp?: boolean;
42
+ internalIngress?: boolean;
43
+ tlsSecretName?: Input<string>;
44
+ maxUploadSizeMb?: number;
45
+ responseHeaders?: Partial<typeof defaultResponseHeaders & {
46
+ [key: string]: string;
47
+ }> | boolean;
48
+ whitelistIps?: Array<Input<string>>;
49
+ enableModSecurity?: boolean;
50
+ cors?: {
51
+ origins: string[];
52
+ headers?: string[];
53
+ };
54
+ canary?: IngressCanary;
55
+ proxy?: {
56
+ backendProtocol?: 'HTTP' | 'HTTPS' | 'GRPC' | 'GRPCS' | 'AJP' | 'FCGI';
57
+ backendUrl?: string;
58
+ sslVerify?: boolean;
59
+ tlsSecretName?: Input<string>;
60
+ };
61
+ auth?: {
62
+ enableClientTls?: boolean;
63
+ alwaysRequireCert?: boolean;
64
+ caSecret?: string;
65
+ upstreamHeaderKey?: string;
66
+ errorPage?: string;
67
+ };
68
+ pathType?: 'Prefix' | 'ImplementationSpecific' | string;
69
+ service?: ServiceType;
70
+ services?: {
71
+ metadata: {
72
+ namespace: Input<string>;
73
+ labels?: Input<{
74
+ [key: string]: Input<string>;
75
+ }>;
76
+ };
77
+ paths: ServicesType[];
78
+ };
79
+ provider: k8s.Provider;
80
+ dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
81
+ }
82
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9JbmdyZXNzL3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
@@ -0,0 +1,8 @@
1
+ import { DefaultK8sArgs } from '../types';
2
+ interface Props extends Omit<DefaultK8sArgs, 'provider' | 'namespace'> {
3
+ namespace?: string;
4
+ ignoreChanges?: boolean;
5
+ kubeconfig: string;
6
+ }
7
+ export declare const createProvider: ({ name, ignoreChanges, ...others }: Props) => import("@pulumi/kubernetes/provider").Provider;
8
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createProvider = void 0;
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const Naming_1 = require("../../Common/Naming");
6
+ const createProvider = ({ name = 'ks-provider', ignoreChanges, ...others }) => {
7
+ name = (0, Naming_1.getK8sProviderName)(name);
8
+ return new k8s.Provider(name, {
9
+ ...others,
10
+ suppressDeprecationWarnings: true,
11
+ suppressHelmHookWarnings: true,
12
+ }, { ignoreChanges: ignoreChanges ? ['kubeconfig'] : undefined });
13
+ };
14
+ exports.createProvider = createProvider;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvUHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBDQUEwQztBQUMxQyxnREFBeUQ7QUFRbEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUM3QixJQUFJLEdBQUcsYUFBYSxFQUNwQixhQUFhLEVBQ2IsR0FBRyxNQUFNLEVBQ0gsRUFBRSxFQUFFO0lBQ1YsSUFBSSxHQUFHLElBQUEsMkJBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQ3JCLElBQUksRUFDSjtRQUNFLEdBQUcsTUFBTTtRQUNULDJCQUEyQixFQUFFLElBQUk7UUFDakMsd0JBQXdCLEVBQUUsSUFBSTtLQUMvQixFQUNELEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQzlELENBQUM7QUFDSixDQUFDLENBQUM7QUFmVyxRQUFBLGNBQWMsa0JBZXpCIn0=
@@ -0,0 +1,15 @@
1
+ import { DefaultK8sArgs } from '../../types';
2
+ import * as k8s from '@pulumi/kubernetes';
3
+ import { Input } from '@pulumi/pulumi';
4
+ type BackupType = {
5
+ azureStorage?: {
6
+ accountName: Input<string>;
7
+ accountKey: Input<string>;
8
+ containerName: Input<string>;
9
+ };
10
+ };
11
+ export interface LonghornProps extends Omit<DefaultK8sArgs, 'name' | 'namespace'> {
12
+ backup?: BackupType;
13
+ }
14
+ declare const _default: ({ resources, backup, ...others }: LonghornProps) => k8s.helm.v3.Chart;
15
+ export default _default;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const k8s = require("@pulumi/kubernetes");
4
+ const Namespace_1 = require("../../Core/Namespace");
5
+ const pulumi_1 = require("@pulumi/pulumi");
6
+ const KsSecret_1 = require("../../Core/KsSecret");
7
+ const configBackup = ({ name, config, ...others }) => {
8
+ let backupTarget = '';
9
+ let backupTargetCredentialSecret = '';
10
+ if (config.azureStorage) {
11
+ const { accountName, accountKey, containerName } = config.azureStorage;
12
+ const secret = (0, KsSecret_1.default)({
13
+ ...others,
14
+ name: `${name}-azure-blob-backup`,
15
+ stringData: {
16
+ AZBLOB_ACCOUNT_NAME: accountName,
17
+ AZBLOB_ACCOUNT_KEY: accountKey,
18
+ },
19
+ });
20
+ backupTargetCredentialSecret = secret.metadata.name;
21
+ backupTarget = (0, pulumi_1.interpolate) `azblob://${containerName}@core.windows.net/`;
22
+ }
23
+ return { backupTarget, backupTargetCredentialSecret };
24
+ };
25
+ //https://github.com/longhorn/longhorn/blob/master/chart/values.yaml
26
+ exports.default = ({ resources, backup, ...others }) => {
27
+ const name = 'longhorn';
28
+ const namespace = 'longhorn-system';
29
+ const ns = (0, Namespace_1.default)({ name: namespace, ...others });
30
+ const backupInfo = backup
31
+ ? configBackup({ name, namespace, config: backup, ...others })
32
+ : {};
33
+ return new k8s.helm.v3.Chart(name, {
34
+ namespace,
35
+ chart: 'longhorn',
36
+ fetchOpts: { repo: 'https://charts.longhorn.io' },
37
+ skipAwait: true,
38
+ values: {
39
+ csi: { kubeletRootDir: '/var/lib/kubelet' },
40
+ defaultSettings: {
41
+ ...backupInfo,
42
+ //replicaSoftAntiAffinity: true,
43
+ //replicaZoneSoftAntiAffinity: true,
44
+ //createDefaultDiskLabeledNodes: true,
45
+ //defaultReplicaCount: 2,
46
+ //defaultLonghornStaticStorageClass: 'longhorn-static-storageclass',
47
+ //defaultDataPath:
48
+ guaranteedEngineCPU: 0.1,
49
+ diskType: 'flesystem',
50
+ },
51
+ },
52
+ }, { ...others, dependsOn: ns });
53
+ };
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvU3RvcmFnZS9Mb25naG9ybi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUEwQztBQUMxQyxvREFBNkM7QUFDN0MsMkNBQW9EO0FBQ3BELGtEQUEyQztBQWUzQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLElBQUksRUFDSixNQUFNLEVBQ04sR0FBRyxNQUFNLEVBQytCLEVBQUUsRUFBRTtJQUM1QyxJQUFJLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBQ3JDLElBQUksNEJBQTRCLEdBQWtCLEVBQUUsQ0FBQztJQUVyRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRXZFLE1BQU0sTUFBTSxHQUFHLElBQUEsa0JBQVEsRUFBQztZQUN0QixHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUUsR0FBRyxJQUFJLG9CQUFvQjtZQUNqQyxVQUFVLEVBQUU7Z0JBQ1YsbUJBQW1CLEVBQUUsV0FBVztnQkFDaEMsa0JBQWtCLEVBQUUsVUFBVTthQUMvQjtTQUNGLENBQUMsQ0FBQztRQUVILDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3BELFlBQVksR0FBRyxJQUFBLG9CQUFXLEVBQUEsWUFBWSxhQUFhLG9CQUFvQixDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPLEVBQUUsWUFBWSxFQUFFLDRCQUE0QixFQUFFLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLGtCQUFlLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFpQixFQUFFLEVBQUU7SUFDakUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBQ3hCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBRXBDLE1BQU0sRUFBRSxHQUFHLElBQUEsbUJBQVMsRUFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU07UUFDdkIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzlELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFUCxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUMxQixJQUFJLEVBQ0o7UUFDRSxTQUFTO1FBQ1QsS0FBSyxFQUFFLFVBQVU7UUFDakIsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1FBQ2pELFNBQVMsRUFBRSxJQUFJO1FBRWYsTUFBTSxFQUFFO1lBQ04sR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1lBQzNDLGVBQWUsRUFBRTtnQkFDZixHQUFHLFVBQVU7Z0JBQ2IsZ0NBQWdDO2dCQUNoQyxvQ0FBb0M7Z0JBQ3BDLHNDQUFzQztnQkFDdEMseUJBQXlCO2dCQUN6QixvRUFBb0U7Z0JBQ3BFLGtCQUFrQjtnQkFDbEIsbUJBQW1CLEVBQUUsR0FBRztnQkFDeEIsUUFBUSxFQUFFLFdBQVc7YUFDdEI7U0FDRjtLQUNGLEVBQ0QsRUFBRSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQzdCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -0,0 +1,25 @@
1
+ import * as pulumi from '@pulumi/pulumi';
2
+ import * as k8s from '@pulumi/kubernetes';
3
+ import { K8sArgs } from '../types';
4
+ interface AzureFileStorageProps {
5
+ name: string;
6
+ resourceGroup?: pulumi.Input<string>;
7
+ secretName: pulumi.Input<string>;
8
+ namespace?: pulumi.Input<string>;
9
+ /** requests storage: 5Gi or 10Gi*/
10
+ storage?: string;
11
+ mountOptions?: string[];
12
+ provider: k8s.Provider;
13
+ }
14
+ export declare const createPVCForAzureFileShare: ({ name, resourceGroup, namespace, secretName, storage, mountOptions, provider, }: AzureFileStorageProps) => import("@pulumi/kubernetes/core/v1/persistentVolumeClaim").PersistentVolumeClaim;
15
+ interface StorageClassProps extends K8sArgs {
16
+ name: string;
17
+ namespace?: pulumi.Input<string>;
18
+ storageClassName?: pulumi.Input<string>;
19
+ volumeMode?: 'Filesystem';
20
+ /** requests storage: 5Gi or 10Gi*/
21
+ storageGb?: string;
22
+ accessMode?: 'ReadWriteOnce' | 'ReadWriteMany';
23
+ }
24
+ export declare const createPVCForStorageClass: ({ name, namespace, storageClassName, storageGb, accessMode, provider, dependsOn, }: StorageClassProps) => import("@pulumi/kubernetes/core/v1/persistentVolumeClaim").PersistentVolumeClaim;
25
+ export {};
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createPVCForStorageClass = exports.createPVCForAzureFileShare = void 0;
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const Random_1 = require("../../Core/Random");
6
+ const defaultMountOptions = [
7
+ 'dir_mode=0777',
8
+ 'file_mode=0777',
9
+ 'uid=0',
10
+ 'gid=0',
11
+ 'mfsymlinks',
12
+ 'cache=strict',
13
+ 'nosharesock',
14
+ 'nobrl',
15
+ ];
16
+ const createPVCForAzureFileShare = ({ name, resourceGroup, namespace, secretName, storage = '5Gi', mountOptions = defaultMountOptions, provider, }) => {
17
+ const v = new k8s.core.v1.PersistentVolume(name, {
18
+ metadata: {
19
+ name,
20
+ namespace,
21
+ annotations: { 'pulumi.com/skipAwait': 'true' },
22
+ },
23
+ spec: {
24
+ capacity: {
25
+ storage,
26
+ },
27
+ accessModes: ['ReadWriteMany'],
28
+ persistentVolumeReclaimPolicy: 'Retain',
29
+ csi: {
30
+ driver: 'file.csi.azure.com',
31
+ readOnly: false,
32
+ volumeHandle: (0, Random_1.randomUuId)(name).result,
33
+ volumeAttributes: resourceGroup
34
+ ? { shareName: name, resourceGroup }
35
+ : { shareName: name },
36
+ nodeStageSecretRef: { name: secretName, namespace },
37
+ },
38
+ mountOptions,
39
+ },
40
+ }, { provider });
41
+ return new k8s.core.v1.PersistentVolumeClaim(name, {
42
+ metadata: {
43
+ name,
44
+ namespace,
45
+ annotations: { 'pulumi.com/skipAwait': 'true' },
46
+ },
47
+ spec: {
48
+ accessModes: ['ReadWriteMany'],
49
+ resources: {
50
+ requests: {
51
+ storage,
52
+ },
53
+ },
54
+ storageClassName: '',
55
+ volumeName: v.metadata.name,
56
+ },
57
+ }, { provider, dependsOn: v });
58
+ };
59
+ exports.createPVCForAzureFileShare = createPVCForAzureFileShare;
60
+ const createPVCForStorageClass = ({ name, namespace, storageClassName = '', storageGb = '5Gi', accessMode = 'ReadWriteOnce', provider, dependsOn, }) => {
61
+ return new k8s.core.v1.PersistentVolumeClaim(`${name}-claim`, {
62
+ metadata: {
63
+ name: `${name}-claim`,
64
+ annotations: { 'pulumi.com/skipAwait': 'true' },
65
+ namespace,
66
+ },
67
+ spec: {
68
+ accessModes: [accessMode],
69
+ resources: {
70
+ requests: {
71
+ storage: storageGb,
72
+ },
73
+ },
74
+ storageClassName,
75
+ },
76
+ }, { provider, dependsOn, deleteBeforeReplace: true });
77
+ };
78
+ exports.createPVCForStorageClass = createPVCForStorageClass;
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvU3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwQ0FBMEM7QUFDMUMsOENBQStDO0FBRy9DLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixPQUFPO0lBQ1AsT0FBTztJQUNQLFlBQVk7SUFDWixjQUFjO0lBQ2QsYUFBYTtJQUNiLE9BQU87Q0FDUixDQUFDO0FBZUssTUFBTSwwQkFBMEIsR0FBRyxDQUFDLEVBQ3pDLElBQUksRUFDSixhQUFhLEVBQ2IsU0FBUyxFQUNULFVBQVUsRUFDVixPQUFPLEdBQUcsS0FBSyxFQUNmLFlBQVksR0FBRyxtQkFBbUIsRUFDbEMsUUFBUSxHQUNjLEVBQUUsRUFBRTtJQUMxQixNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUN4QyxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULFdBQVcsRUFBRSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRTtTQUNoRDtRQUNELElBQUksRUFBRTtZQUNKLFFBQVEsRUFBRTtnQkFDUixPQUFPO2FBQ1I7WUFDRCxXQUFXLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDOUIsNkJBQTZCLEVBQUUsUUFBUTtZQUN2QyxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLG9CQUFvQjtnQkFDNUIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsWUFBWSxFQUFFLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxNQUFNO2dCQUNyQyxnQkFBZ0IsRUFBRSxhQUFhO29CQUM3QixDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtvQkFDcEMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtnQkFDdkIsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTthQUNwRDtZQUNELFlBQVk7U0FDYjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO0lBRUYsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUMxQyxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULFdBQVcsRUFBRSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRTtTQUNoRDtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUM5QixTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFO29CQUNSLE9BQU87aUJBQ1I7YUFDRjtZQUNELGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUM1QjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUMzQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBM0RXLFFBQUEsMEJBQTBCLDhCQTJEckM7QUFhSyxNQUFNLHdCQUF3QixHQUFHLENBQUMsRUFDdkMsSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLFNBQVMsR0FBRyxLQUFLLEVBQ2pCLFVBQVUsR0FBRyxlQUFlLEVBQzVCLFFBQVEsRUFDUixTQUFTLEdBQ1MsRUFBRSxFQUFFO0lBQ3RCLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FDMUMsR0FBRyxJQUFJLFFBQVEsRUFDZjtRQUNFLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxHQUFHLElBQUksUUFBUTtZQUNyQixXQUFXLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUU7WUFDL0MsU0FBUztTQUNWO1FBQ0QsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLFNBQVM7aUJBQ25CO2FBQ0Y7WUFFRCxnQkFBZ0I7U0FDakI7S0FDRixFQUNELEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FDbkQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlCVyxRQUFBLHdCQUF3Qiw0QkE4Qm5DIn0=
@@ -0,0 +1,7 @@
1
+ import { DefaultK8sArgs } from '../../types';
2
+ import * as k8s from '@pulumi/kubernetes';
3
+ export interface LocalStackProps extends DefaultK8sArgs {
4
+ domain: string;
5
+ }
6
+ declare const _default: ({ name, namespace, domain, provider, }: LocalStackProps) => k8s.helm.v3.Chart;
7
+ export default _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const k8s = require("@pulumi/kubernetes");
4
+ const CertHelper_1 = require("../../CertHelper");
5
+ exports.default = ({ name = 'localstack', namespace, domain, provider, }) => {
6
+ const localStack = new k8s.helm.v3.Chart(name, {
7
+ namespace,
8
+ chart: 'localstack',
9
+ fetchOpts: { repo: 'https://helm.localstack.cloud' },
10
+ values: {
11
+ ingress: {
12
+ enabled: true,
13
+ annotations: {
14
+ 'kubernetes.io/ingress.class': 'nginx',
15
+ 'kubernetes.io/tls-acme': 'true',
16
+ },
17
+ hosts: [
18
+ {
19
+ host: `aws.${domain}`,
20
+ paths: [{ path: '/', pathType: 'ImplementationSpecific' }],
21
+ },
22
+ ],
23
+ tls: [{ secretName: (0, CertHelper_1.getTlsName)(name, true) }],
24
+ },
25
+ },
26
+ }, { provider });
27
+ return localStack;
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9Ub29scy9BV1MvTG9jYWxTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUEwQztBQUMxQyxpREFBOEM7QUFNOUMsa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxZQUFZLEVBQ25CLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxHQUNRLEVBQUUsRUFBRTtJQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDdEMsSUFBSSxFQUNKO1FBQ0UsU0FBUztRQUNULEtBQUssRUFBRSxZQUFZO1FBQ25CLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRTtRQUVwRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsV0FBVyxFQUFFO29CQUNYLDZCQUE2QixFQUFFLE9BQU87b0JBQ3RDLHdCQUF3QixFQUFFLE1BQU07aUJBQ2pDO2dCQUNELEtBQUssRUFBRTtvQkFDTDt3QkFDRSxJQUFJLEVBQUUsT0FBTyxNQUFNLEVBQUU7d0JBQ3JCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztxQkFDM0Q7aUJBQ0Y7Z0JBQ0QsR0FBRyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBQSx1QkFBVSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQzlDO1NBQ0Y7S0FDRixFQUNELEVBQUUsUUFBUSxFQUFFLENBQ2IsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyJ9
@@ -0,0 +1,6 @@
1
+ import { DefaultKsAppArgs } from '../../types';
2
+ export interface AwsS3Props extends Omit<DefaultKsAppArgs, 'name'> {
3
+ storageClassName: string;
4
+ }
5
+ declare const _default: ({ namespace, ingress, runAs, storageClassName, ...others }: AwsS3Props) => void;
6
+ export default _default;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Deployment_1 = require("../../Deployment");
4
+ const Storage_1 = require("../../Storage");
5
+ exports.default = ({ namespace, ingress, runAs, storageClassName, ...others }) => {
6
+ const name = 'aws-s3';
7
+ const image = 'scireum/s3-ninja:latest';
8
+ //Storage
9
+ const persisVolume = (0, Storage_1.createPVCForStorageClass)({
10
+ name,
11
+ namespace,
12
+ accessMode: 'ReadWriteMany',
13
+ ...others,
14
+ storageClassName,
15
+ });
16
+ (0, Deployment_1.default)({
17
+ name,
18
+ namespace,
19
+ podConfig: {
20
+ ports: { http: 9000 },
21
+ image,
22
+ resources: {
23
+ requests: { memory: '1Mi', cpu: '1m' },
24
+ limits: {
25
+ memory: '1Gi',
26
+ cpu: '1',
27
+ },
28
+ },
29
+ // securityContext: runAs,
30
+ volumes: [
31
+ {
32
+ name: 'data',
33
+ mountPath: '/home/sirius/data',
34
+ subPath: 'sample',
35
+ persistentVolumeClaim: persisVolume.metadata.name,
36
+ },
37
+ ],
38
+ },
39
+ ingressConfig: ingress,
40
+ deploymentConfig: { replicas: 1 },
41
+ ...others,
42
+ });
43
+ };
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvVG9vbHMvQVdTL1MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQTBDO0FBRTFDLDJDQUF5RDtBQU16RCxrQkFBZSxDQUFDLEVBQ2QsU0FBUyxFQUNULE9BQU8sRUFDUCxLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLEdBQUcsTUFBTSxFQUNFLEVBQUUsRUFBRTtJQUNmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyx5QkFBeUIsQ0FBQztJQUV4QyxTQUFTO0lBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBQSxrQ0FBd0IsRUFBQztRQUM1QyxJQUFJO1FBQ0osU0FBUztRQUNULFVBQVUsRUFBRSxlQUFlO1FBQzNCLEdBQUcsTUFBTTtRQUNULGdCQUFnQjtLQUNqQixDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFVLEVBQUM7UUFDVCxJQUFJO1FBQ0osU0FBUztRQUVULFNBQVMsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDckIsS0FBSztZQUNMLFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsS0FBSztvQkFDYixHQUFHLEVBQUUsR0FBRztpQkFDVDthQUNGO1lBQ0QsMEJBQTBCO1lBQzFCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixTQUFTLEVBQUUsbUJBQW1CO29CQUM5QixPQUFPLEVBQUUsUUFBUTtvQkFDakIscUJBQXFCLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2lCQUNsRDthQUNGO1NBQ0Y7UUFDRCxhQUFhLEVBQUUsT0FBTztRQUN0QixnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUU7UUFFakMsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,7 @@
1
+ import { AwsS3Props } from './S3';
2
+ import { DefaultK8sArgs } from '../../types';
3
+ interface Props extends Omit<DefaultK8sArgs, 'name'> {
4
+ s3?: Omit<AwsS3Props, 'domain' | 'namespace' | 'provider' | 'dependsOn'>;
5
+ }
6
+ declare const _default: ({ namespace, s3, ...others }: Props) => void;
7
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Namespace_1 = require("../../Core/Namespace");
4
+ const S3_1 = require("./S3");
5
+ exports.default = ({ namespace, s3, ...others }) => {
6
+ const ns = namespace
7
+ ? { metadata: { name: namespace } }
8
+ : (0, Namespace_1.default)({ name: 'aws-local', ...others });
9
+ if (s3)
10
+ (0, S3_1.default)({ namespace: ns.metadata.name, ...others, ...s3 });
11
+ // if (localStack)
12
+ // LocalStack({ namespace: ns.metadata.name, ...others, ...localStack });
13
+ };
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvVG9vbHMvQVdTL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsb0RBQTZDO0FBQzdDLDZCQUF5QztBQVd6QyxrQkFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBUyxFQUFFLEVBQUU7SUFDckQsTUFBTSxFQUFFLEdBQUcsU0FBUztRQUNsQixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFDbkMsQ0FBQyxDQUFDLElBQUEsbUJBQVMsRUFBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWhELElBQUksRUFBRTtRQUFFLElBQUEsWUFBSyxFQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVqRSxrQkFBa0I7SUFDbEIsMkVBQTJFO0FBQzdFLENBQUMsQ0FBQyJ9