@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,306 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.virtualHostConfig = exports.defaultResources = void 0;
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const kx = require("../kx");
6
+ const Ingress_1 = require("../Ingress");
7
+ const pulumi_1 = require("@pulumi/pulumi");
8
+ const Helpers_1 = require("../../Common/Helpers");
9
+ const CertHelper_1 = require("../CertHelper");
10
+ const PodAutoscaler_1 = require("./PodAutoscaler");
11
+ const ConfigSecret_1 = require("../ConfigSecret");
12
+ exports.defaultResources = {
13
+ limits: { memory: '0.5Gi', cpu: '500m' },
14
+ requests: { memory: '10Mi', cpu: '1m' },
15
+ };
16
+ exports.virtualHostConfig = {
17
+ nodeSelector: {
18
+ 'kubernetes.io/role': 'agent',
19
+ 'beta.kubernetes.io/os': 'linux',
20
+ type: 'virtual-kubelet',
21
+ },
22
+ tolerations: [
23
+ {
24
+ effect: 'NoSchedule',
25
+ key: 'virtual-kubelet.io/provider',
26
+ value: 'azure',
27
+ },
28
+ ],
29
+ };
30
+ const buildPod = ({ name, envFrom, podConfig, useVirtualHost, restartPolicy, args, }) => {
31
+ //console.log('buildPod', podConfig);
32
+ if (useVirtualHost) {
33
+ podConfig.nodeSelector = exports.virtualHostConfig.nodeSelector;
34
+ podConfig.tolerations = exports.virtualHostConfig.tolerations;
35
+ if (!podConfig.resources)
36
+ podConfig.resources = false;
37
+ }
38
+ //else if (!podConfig.nodeSelector) podConfig.nodeSelector = { app: name };
39
+ const resources = podConfig.resources === false
40
+ ? undefined
41
+ : podConfig.resources || exports.defaultResources;
42
+ return new kx.PodBuilder({
43
+ terminationGracePeriodSeconds: 30,
44
+ securityContext: podConfig.securityContext,
45
+ automountServiceAccountToken: false,
46
+ volumes: podConfig.volumes
47
+ ? podConfig.volumes.map((v) => ({
48
+ name: v.name.toLowerCase(),
49
+ emptyDir: v.emptyDir ? {} : undefined,
50
+ hostPath: v.hostPath ? { path: v.hostPath } : undefined,
51
+ csi: v.secretName && v.type === 'azureFile'
52
+ ? {
53
+ driver: 'file.csi.azure.com',
54
+ volumeAttributes: {
55
+ secretName: v.secretName,
56
+ shareName: v.name.toLowerCase(),
57
+ // mountOptions:
58
+ // 'dir_mode=0777,file_mode=0777,cache=strict,actimeo=30',
59
+ },
60
+ }
61
+ : undefined,
62
+ persistentVolumeClaim: v.persistentVolumeClaim
63
+ ? { claimName: v.persistentVolumeClaim }
64
+ : undefined,
65
+ configMap: v.configMapName ? { name: v.configMapName } : undefined,
66
+ secret: v.secretName && v.type === undefined
67
+ ? { secretName: v.secretName }
68
+ : undefined,
69
+ }))
70
+ : undefined,
71
+ containers: [
72
+ {
73
+ name,
74
+ image: podConfig.image,
75
+ imagePullPolicy: podConfig.imagePullPolicy,
76
+ ports: podConfig.ports,
77
+ command: podConfig.command,
78
+ envFrom,
79
+ securityContext: podConfig.podSecurityContext,
80
+ resources,
81
+ args,
82
+ volumeMounts: podConfig.volumes
83
+ ? podConfig.volumes.map((v) => ({
84
+ name: v.name,
85
+ mountPath: v.mountPath,
86
+ subPath: v.subPath,
87
+ readOnly: v.readOnly ?? false,
88
+ }))
89
+ : undefined,
90
+ livenessProbe: podConfig.probes?.liveness
91
+ ? {
92
+ initialDelaySeconds: podConfig.probes.liveness.initialDelaySeconds || 30,
93
+ periodSeconds: podConfig.probes.liveness.periodSeconds || 300,
94
+ timeoutSeconds: podConfig.probes.liveness.timeoutSeconds || 5,
95
+ failureThreshold: podConfig.probes.liveness.failureThreshold || 2,
96
+ httpGet: podConfig.probes.liveness.httpGet
97
+ ? {
98
+ path: podConfig.probes.liveness.httpGet,
99
+ port: podConfig.probes.liveness.port,
100
+ }
101
+ : undefined,
102
+ }
103
+ : undefined,
104
+ lifecycle: podConfig.probes?.lifecycle?.postStart
105
+ ? {
106
+ postStart: {
107
+ exec: { command: podConfig.probes.lifecycle.postStart },
108
+ },
109
+ }
110
+ : undefined,
111
+ },
112
+ ],
113
+ imagePullSecrets: podConfig.imagePullSecret
114
+ ? [
115
+ {
116
+ name: podConfig.imagePullSecret,
117
+ },
118
+ ]
119
+ : undefined,
120
+ restartPolicy,
121
+ tolerations: podConfig.tolerations,
122
+ nodeSelector: podConfig.nodeSelector,
123
+ });
124
+ };
125
+ exports.default = ({ name, namespace, configMap, secrets, mapSecretsToVolume, mapConfigToVolume, podConfig, deploymentConfig, serviceConfig, jobConfigs, ingressConfig, enableHA, provider, dependsOn, }) => {
126
+ const deploymentTime = typeof deploymentConfig === 'object' && deploymentConfig.enforceReDeployment
127
+ ? new Date().getTime().toString()
128
+ : '';
129
+ if (!podConfig.volumes)
130
+ podConfig.volumes = [];
131
+ const configSecret = (0, ConfigSecret_1.default)({
132
+ name,
133
+ namespace,
134
+ configMap,
135
+ secrets,
136
+ provider,
137
+ dependsOn,
138
+ });
139
+ const envFrom = new Array();
140
+ if (configSecret.config) {
141
+ envFrom.push({
142
+ configMapRef: { name: configSecret.config.metadata.name },
143
+ });
144
+ }
145
+ if (configSecret.secret) {
146
+ //Create Secrets
147
+ envFrom.push({ secretRef: { name: configSecret.secret.metadata.name } });
148
+ }
149
+ if (mapConfigToVolume && configSecret.config) {
150
+ podConfig.volumes.push({
151
+ name: mapConfigToVolume.name,
152
+ mountPath: mapConfigToVolume.path,
153
+ subPath: mapConfigToVolume.subPath,
154
+ configMapName: configSecret.config.metadata.name,
155
+ });
156
+ }
157
+ if (mapSecretsToVolume && configSecret.secret) {
158
+ podConfig.volumes.push({
159
+ name: mapSecretsToVolume.name,
160
+ mountPath: mapSecretsToVolume.path,
161
+ subPath: mapSecretsToVolume.subPath,
162
+ secretName: configSecret.secret.metadata.name,
163
+ });
164
+ }
165
+ if (!podConfig.ports)
166
+ podConfig.ports = { http: 8080 };
167
+ const deployment = deploymentConfig == false
168
+ ? undefined
169
+ : new kx.Deployment(name, {
170
+ metadata: {
171
+ namespace,
172
+ annotations: { 'pulumi.com/skipAwait': 'true' },
173
+ labels: { app: name, time: deploymentTime },
174
+ },
175
+ spec: buildPod({
176
+ name,
177
+ podConfig,
178
+ envFrom,
179
+ args: deploymentConfig?.args,
180
+ useVirtualHost: deploymentConfig?.useVirtualHost,
181
+ }).asDeploymentSpec({
182
+ replicas: deploymentConfig?.replicas ?? 1,
183
+ revisionHistoryLimit: 1,
184
+ // strategy: {
185
+ // type: deploymentConfig?.strategy,
186
+ // rollingUpdate: undefined,
187
+ // },
188
+ }),
189
+ }, {
190
+ provider,
191
+ dependsOn,
192
+ deleteBeforeReplace: true,
193
+ replaceOnChanges: deploymentConfig?.enforceReDeployment
194
+ ? ['*']
195
+ : undefined,
196
+ customTimeouts: { create: '1m', update: '1m' },
197
+ });
198
+ let jobs = undefined;
199
+ //Jobs
200
+ if (jobConfigs) {
201
+ jobs = jobConfigs.map((job) => {
202
+ if (!job.useVirtualHost && deploymentConfig !== false)
203
+ job.useVirtualHost = Boolean(deploymentConfig?.useVirtualHost);
204
+ if (job.cron)
205
+ return new k8s.batch.v1.CronJob(job.name, {
206
+ metadata: { namespace },
207
+ spec: buildPod({
208
+ name,
209
+ podConfig,
210
+ envFrom,
211
+ useVirtualHost: job.useVirtualHost,
212
+ args: job.args,
213
+ restartPolicy: job.restartPolicy || 'Never',
214
+ }).asCronJobSpec({
215
+ failedJobsHistoryLimit: 1,
216
+ successfulJobsHistoryLimit: 1,
217
+ ...job.cron,
218
+ }),
219
+ }, { provider, deleteBeforeReplace: true });
220
+ return new kx.Job(job.name, {
221
+ metadata: {
222
+ namespace,
223
+ annotations: { 'pulumi.com/skipAwait': 'true' },
224
+ },
225
+ spec: buildPod({
226
+ name,
227
+ podConfig,
228
+ envFrom,
229
+ useVirtualHost: job.useVirtualHost,
230
+ args: job.args,
231
+ restartPolicy: job.restartPolicy || 'Never',
232
+ }).asJobSpec({
233
+ ttlSecondsAfterFinished: job.ttlSecondsAfterFinished || 604800, //7 days
234
+ }),
235
+ }, { provider, deleteBeforeReplace: true });
236
+ });
237
+ }
238
+ let service = undefined;
239
+ if (deployment && serviceConfig !== false) {
240
+ // const servicePort: any = {
241
+ // name: 'http',
242
+ // port: 80,
243
+ // targetPort: podConfig.port,
244
+ // protocol: 'TCP',
245
+ // };
246
+ //
247
+ // if (serviceConfig?.usePodPort) {
248
+ // servicePort.port = podConfig.port;
249
+ // //servicePort.targetPort = podConfig.port;
250
+ // } else if (serviceConfig?.port) {
251
+ // servicePort.port = serviceConfig.port;
252
+ // //servicePort.targetPort = podConfig.port;
253
+ // }
254
+ const portKeys = Object.keys(podConfig.ports);
255
+ //Service
256
+ service = deployment.createService({
257
+ name,
258
+ ports: portKeys.length == 1
259
+ ? [
260
+ {
261
+ name: 'http',
262
+ port: serviceConfig?.usePodPort
263
+ ? podConfig.ports[portKeys[0]]
264
+ : 80,
265
+ targetPort: podConfig.ports[portKeys[0]],
266
+ protocol: 'TCP',
267
+ },
268
+ ]
269
+ : portKeys.map((k) => ({
270
+ name: k,
271
+ port: podConfig.ports[k],
272
+ //targetPort: podConfig.ports[k],
273
+ protocol: 'TCP',
274
+ })),
275
+ type: serviceConfig?.useClusterIP ? 'LoadBalancer' : undefined,
276
+ });
277
+ }
278
+ //Ingress
279
+ if (ingressConfig && service) {
280
+ const ingressProps = {
281
+ ...ingressConfig,
282
+ className: ingressConfig.className || 'nginx',
283
+ name: `${name}-ingress`.toLowerCase(),
284
+ hostNames: ingressConfig.hostNames.map((host) => (0, pulumi_1.output)(host).apply((h) => h.toLowerCase().replace('https://', ''))),
285
+ tlsSecretName: ingressConfig.allowHttp
286
+ ? undefined
287
+ : ingressConfig.tlsSecretName ||
288
+ (0, pulumi_1.output)(ingressConfig.hostNames).apply((h) => (0, CertHelper_1.getTlsName)(ingressConfig.certManagerIssuer
289
+ ? (0, Helpers_1.getDomainFromUrl)(h[0])
290
+ : (0, Helpers_1.getRootDomainFromUrl)(h[0]), Boolean(ingressConfig.certManagerIssuer))),
291
+ service,
292
+ provider,
293
+ dependsOn: [service],
294
+ };
295
+ if (ingressConfig.type === 'nginx') {
296
+ (0, Ingress_1.NginxIngress)(ingressProps);
297
+ }
298
+ else
299
+ (0, Ingress_1.TraefikIngress)(ingressProps);
300
+ }
301
+ if (enableHA && deployment) {
302
+ (0, PodAutoscaler_1.PodAutoScale)({ ...enableHA, deployment, provider });
303
+ }
304
+ return { deployment, service, jobs };
305
+ };
306
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvRGVwbG95bWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMEM7QUFDMUMsNEJBQTRCO0FBQzVCLHdDQUEwRDtBQUUxRCwyQ0FBeUQ7QUFDekQsa0RBQThFO0FBQzlFLDhDQUEyQztBQUczQyxtREFBa0U7QUFDbEUsa0RBQTJDO0FBSTlCLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO0lBQ3hDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtDQUN4QyxDQUFDO0FBRVcsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixZQUFZLEVBQUU7UUFDWixvQkFBb0IsRUFBRSxPQUFPO1FBQzdCLHVCQUF1QixFQUFFLE9BQU87UUFDaEMsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QjtJQUNELFdBQVcsRUFBRTtRQUNYO1lBQ0UsTUFBTSxFQUFFLFlBQVk7WUFDcEIsR0FBRyxFQUFFLDZCQUE2QjtZQUNsQyxLQUFLLEVBQUUsT0FBTztTQUNmO0tBQ0Y7Q0FDRixDQUFDO0FBcURGLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFDaEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixJQUFJLEdBQ1ksRUFBRSxFQUFFO0lBQ3BCLHFDQUFxQztJQUNyQyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLFNBQVMsQ0FBQyxZQUFZLEdBQUcseUJBQWlCLENBQUMsWUFBWSxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxXQUFXLEdBQUcseUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBRXRELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUztZQUFFLFNBQVMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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
@@ -0,0 +1,4 @@
1
+ export declare const getKubeDomainCert: (domain: string) => Promise<{
2
+ cert: string;
3
+ privateKey: string;
4
+ } | undefined>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getKubeDomainCert = void 0;
4
+ const Helpers_1 = require("../Web/Helpers");
5
+ const Certificate_1 = require("../Certificate");
6
+ const getKubeDomainCert = async (domain) => {
7
+ //Get cert from CertOrder.
8
+ const cert = await (0, Helpers_1.getCertificateForDomain)(domain);
9
+ //Convert to K8s cert
10
+ return cert
11
+ ? (0, Certificate_1.convertPfxToPem)({
12
+ base64Cert: cert.base64CertData,
13
+ })
14
+ : undefined;
15
+ };
16
+ exports.getKubeDomainCert = getKubeDomainCert;
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9LdWJlWC9IZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUF5RDtBQUN6RCxnREFBaUQ7QUFFMUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDeEQsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxxQkFBcUI7SUFDckIsT0FBTyxJQUFJO1FBQ1QsQ0FBQyxDQUFDLElBQUEsNkJBQWUsRUFBQztZQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNoQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFUVyxRQUFBLGlCQUFpQixxQkFTNUIifQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: () => void;
2
+ export default _default;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = () => { };
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwR2F0ZXdheUluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9BcHBHYXRld2F5SW5ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ export declare const defaultResponseHeaders: {
2
+ server: string;
3
+ 'X-Powered-By': string;
4
+ 'X-AspNet-Version': string;
5
+ 'Strict-Transport-Security': string;
6
+ 'X-XSS-Protection': string;
7
+ 'X-Frame-Options': string;
8
+ 'Content-Security-Policy': string;
9
+ 'X-Content-Type-Options': string;
10
+ 'Expect-Ct': string;
11
+ 'Cache-Control': string;
12
+ };
13
+ export declare const corsDefaultHeaders = "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.corsDefaultHeaders = exports.defaultResponseHeaders = void 0;
4
+ const StackEnv_1 = require("../../Common/StackEnv");
5
+ exports.defaultResponseHeaders = {
6
+ server: StackEnv_1.organization,
7
+ 'X-Powered-By': StackEnv_1.organization,
8
+ 'X-AspNet-Version': StackEnv_1.organization,
9
+ 'Strict-Transport-Security': 'max-age=86400; includeSubDomains',
10
+ 'X-XSS-Protection': '1; mode=block',
11
+ 'X-Frame-Options': `SAMEORIGIN`,
12
+ 'Content-Security-Policy': `default-src 'self' data: 'unsafe-inline' 'unsafe-eval'; frame-ancestors 'self'`,
13
+ 'X-Content-Type-Options': 'nosniff',
14
+ 'Expect-Ct': 'max-age=604800,enforce',
15
+ 'Cache-Control': 'max-age=10', //10 second only
16
+ };
17
+ exports.corsDefaultHeaders = 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9Db250cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFFeEMsUUFBQSxzQkFBc0IsR0FBRztJQUNwQyxNQUFNLEVBQUUsdUJBQVk7SUFDcEIsY0FBYyxFQUFFLHVCQUFZO0lBQzVCLGtCQUFrQixFQUFFLHVCQUFZO0lBQ2hDLDJCQUEyQixFQUFFLGtDQUFrQztJQUMvRCxrQkFBa0IsRUFBRSxlQUFlO0lBQ25DLGlCQUFpQixFQUFFLFlBQVk7SUFDL0IseUJBQXlCLEVBQUUsZ0ZBQWdGO0lBQzNHLHdCQUF3QixFQUFFLFNBQVM7SUFDbkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxlQUFlLEVBQUUsWUFBWSxFQUFFLGdCQUFnQjtDQUNoRCxDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FDN0Isc0hBQXNILENBQUMifQ==
@@ -0,0 +1,3 @@
1
+ import { IngressProps } from './type';
2
+ declare const _default: ({ name, className, hostNames, maxUploadSizeMb, allowHttp, internalIngress, tlsSecretName, canary, proxy, auth, responseHeaders, whitelistIps, enableModSecurity, cors, certManagerIssuer, pathType, services, service, provider, dependsOn, }: IngressProps) => import("@pulumi/kubernetes/networking/v1/ingress").Ingress;
3
+ export default _default;
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const k8s = require("@pulumi/kubernetes");
4
+ const Conts_1 = require("./Conts");
5
+ exports.default = ({ name, className = 'nginx', hostNames, maxUploadSizeMb = 10, allowHttp, internalIngress, tlsSecretName, canary, proxy, auth, responseHeaders, whitelistIps, enableModSecurity, cors, certManagerIssuer, pathType = 'ImplementationSpecific', services, service, provider, dependsOn, }) => {
6
+ if (!service && !services)
7
+ throw new Error('Either "service" or "services" is must be provided.');
8
+ const annotations = {
9
+ 'pulumi.com/skipAwait': 'true',
10
+ 'nginx.ingress.kubernetes.io/body-size': '1024m',
11
+ 'nginx.ingress.kubernetes.io/client-body-buffer-size': '50m',
12
+ 'nginx.ingress.kubernetes.io/client-max-body-size': '50m',
13
+ };
14
+ if (maxUploadSizeMb) {
15
+ annotations['nginx.ingress.kubernetes.io/proxy-body-size'] = `${maxUploadSizeMb}m`;
16
+ }
17
+ if (certManagerIssuer) {
18
+ if (typeof certManagerIssuer === 'string')
19
+ annotations['cert-manager.io/cluster-issuer'] = certManagerIssuer;
20
+ else
21
+ annotations['kubernetes.io/tls-acme'] = 'true';
22
+ }
23
+ if (internalIngress) {
24
+ annotations['service.beta.kubernetes.io/azure-load-balancer-internal'] =
25
+ 'true';
26
+ }
27
+ if (canary) {
28
+ annotations['nginx.ingress.kubernetes.io/canary'] = 'true';
29
+ annotations['nginx.ingress.kubernetes.io/canary-weight'] = '100';
30
+ if (canary.headerKey)
31
+ annotations['nginx.ingress.kubernetes.io/canary-by-header'] =
32
+ canary.headerKey;
33
+ if (canary.headerValue)
34
+ annotations['nginx.ingress.kubernetes.io/canary-by-header-value'] =
35
+ canary.headerValue;
36
+ if (canary.headerPattern)
37
+ annotations['nginx.ingress.kubernetes.io/canary-by-header-pattern'] =
38
+ canary.headerPattern;
39
+ }
40
+ if (proxy?.backendProtocol) {
41
+ //annotations['nginx.ingress.kubernetes.io/ssl-passthrough'] = 'true';
42
+ annotations['nginx.ingress.kubernetes.io/backend-protocol'] =
43
+ proxy.backendProtocol;
44
+ }
45
+ if (proxy?.backendUrl) {
46
+ const vhost = proxy.backendUrl
47
+ .replace('https://', '')
48
+ .replace('http://', '');
49
+ annotations['nginx.ingress.kubernetes.io/upstream-vhost'] = vhost;
50
+ annotations['nginx.ingress.kubernetes.io/server-snippet'] = `proxy_ssl_name ${vhost};proxy_ssl_server_name on`;
51
+ annotations['nginx.ingress.kubernetes.io/use-proxy-protocol'] = 'true';
52
+ annotations['nginx.ingress.kubernetes.io/proxy-ssl-verify'] =
53
+ proxy.sslVerify ? 'on' : 'off';
54
+ annotations['nginx.ingress.kubernetes.io/proxy-ssl-verify-depth'] = '1';
55
+ annotations['nginx.ingress.kubernetes.io/proxy-connect-timeout'] = '3600';
56
+ annotations['nginx.ingress.kubernetes.io/proxy-read-timeout'] = '3600';
57
+ annotations['nginx.ingress.kubernetes.io/proxy-send-timeout'] = '3600';
58
+ if (proxy.tlsSecretName) {
59
+ annotations['nginx.ingress.kubernetes.io/proxy-ssl-secret'] =
60
+ proxy.tlsSecretName;
61
+ }
62
+ }
63
+ if (auth?.enableClientTls === true) {
64
+ // Enable client certificate authentication
65
+ annotations['nginx.ingress.kubernetes.io/auth-tls-verify-client'] =
66
+ auth.alwaysRequireCert ? 'on' : 'optional';
67
+ // Create the secret containing the trusted ca certificates
68
+ if (auth.caSecret)
69
+ annotations['nginx.ingress.kubernetes.io/auth-tls-secret'] =
70
+ auth.caSecret;
71
+ // Specify the verification depth in the client certificates chain
72
+ annotations['nginx.ingress.kubernetes.io/auth-tls-verify-depth'] = '1';
73
+ // Specify an error page to be redirected to verification errors
74
+ if (auth.errorPage)
75
+ annotations['nginx.ingress.kubernetes.io/auth-tls-error-page'] =
76
+ auth.errorPage;
77
+ // Specify if certificates are passed to upstream server
78
+ annotations['nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream'] = 'true';
79
+ annotations['nginx.ingress.kubernetes.io/auth-tls-pass-certificate-to-upstream-header'] = auth.upstreamHeaderKey ?? 'ssl-client-cert';
80
+ }
81
+ const responseSecurity = responseHeaders === true
82
+ ? Conts_1.defaultResponseHeaders
83
+ : responseHeaders === false
84
+ ? undefined
85
+ : {
86
+ ...Conts_1.defaultResponseHeaders,
87
+ ...responseHeaders,
88
+ };
89
+ if (responseSecurity) {
90
+ annotations['nginx.ingress.kubernetes.io/configuration-snippet'] = `${Object.keys(responseSecurity)
91
+ .map((k) => `more_set_headers "${k}: ${responseSecurity[k]}";`)
92
+ .join('')}`;
93
+ }
94
+ //Force Https
95
+ annotations['kubernetes.io/ingress.allow-http'] = allowHttp
96
+ ? 'true'
97
+ : 'false';
98
+ annotations['ingress.kubernetes.io/force-ssl-redirect'] = allowHttp
99
+ ? 'false'
100
+ : 'true';
101
+ if (cors) {
102
+ annotations['nginx.ingress.kubernetes.io/cors-allow-origin'] =
103
+ cors.origins.join(',');
104
+ annotations['nginx.ingress.kubernetes.io/cors-allow-headers'] = cors.headers
105
+ ? Conts_1.corsDefaultHeaders + ',' + cors.headers.join(',')
106
+ : Conts_1.corsDefaultHeaders;
107
+ }
108
+ //Whitelist IP Address
109
+ if (whitelistIps && whitelistIps.length > 0) {
110
+ annotations['nginx.ingress.kubernetes.io/whitelist-source-range'] =
111
+ whitelistIps.join(',');
112
+ }
113
+ //Mode Security
114
+ if (enableModSecurity) {
115
+ annotations['nginx.ingress.kubernetes.io/enable-owasp-core-rules'] = 'true';
116
+ annotations['nginx.ingress.kubernetes.io/enable-modsecurity'] = 'true';
117
+ annotations['nginx.ingress.kubernetes.io/modsecurity-transaction-id'] =
118
+ '$request_id';
119
+ // annotations[
120
+ // 'nginx.ingress.kubernetes.io/modsecurity-snippet'
121
+ // ] = `Include /etc/nginx/owasp-modsecurity-crs/nginx-modsecurity.conf`;
122
+ }
123
+ else {
124
+ annotations['nginx.ingress.kubernetes.io/enable-owasp-core-rules'] =
125
+ 'false';
126
+ annotations['nginx.ingress.kubernetes.io/enable-modsecurity'] = 'false';
127
+ }
128
+ if (services) {
129
+ annotations['nginx.ingress.kubernetes.io/rewrite-target'] = '/$1';
130
+ annotations['nginx.ingress.kubernetes.io/use-regex'] = 'true';
131
+ }
132
+ const servicePaths = services
133
+ ? services.paths.map((s) => ({
134
+ backend: {
135
+ service: {
136
+ name: s.metadata.name,
137
+ port: {
138
+ number: s.spec.ports[0].port,
139
+ },
140
+ },
141
+ },
142
+ path: `${s.path}/(.*)`,
143
+ pathType,
144
+ }))
145
+ : [
146
+ {
147
+ backend: {
148
+ service: {
149
+ name: service.metadata.name,
150
+ port: {
151
+ number: service.spec.ports[0].port,
152
+ name: service.spec.ports[0].port
153
+ ? undefined
154
+ : service.spec.ports[0].name,
155
+ },
156
+ },
157
+ },
158
+ path: '/',
159
+ pathType, //Prefix or ImplementationSpecific
160
+ },
161
+ ];
162
+ return new k8s.networking.v1.Ingress(name, {
163
+ metadata: {
164
+ name,
165
+ namespace: services?.metadata.namespace || service?.metadata.namespace,
166
+ labels: services?.metadata.labels || service?.metadata.labels,
167
+ annotations,
168
+ },
169
+ spec: {
170
+ ingressClassName: className,
171
+ rules: hostNames.map((hostName) => ({
172
+ host: hostName,
173
+ http: { paths: servicePaths },
174
+ })),
175
+ tls: allowHttp
176
+ ? undefined
177
+ : [
178
+ {
179
+ hosts: hostNames,
180
+ secretName: tlsSecretName,
181
+ },
182
+ ],
183
+ },
184
+ }, { provider, dependsOn });
185
+ };
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmdpbnhJbmdyZXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0t1YmVYL0luZ3Jlc3MvTmdpbnhJbmdyZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQTBDO0FBRzFDLG1DQUFxRTtBQUdyRSxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLFNBQVMsR0FBRyxPQUFPLEVBQ25CLFNBQVMsRUFDVCxlQUFlLEdBQUcsRUFBRSxFQUNwQixTQUFTLEVBQ1QsZUFBZSxFQUNmLGFBQWEsRUFDYixNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixlQUFlLEVBQ2YsWUFBWSxFQUNaLGlCQUFpQixFQUNqQixJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLFFBQVEsR0FBRyx3QkFBd0IsRUFDbkMsUUFBUSxFQUNSLE9BQU8sRUFFUCxRQUFRLEVBQ1IsU0FBUyxHQUNJLEVBQUUsRUFBRTtJQUNqQixJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsUUFBUTtRQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7SUFFekUsTUFBTSxXQUFXLEdBQXFDO1FBQ3BELHNCQUFzQixFQUFFLE1BQU07UUFDOUIsdUNBQXVDLEVBQUUsT0FBTztRQUNoRCxxREFBcUQsRUFBRSxLQUFLO1FBQzVELGtEQUFrRCxFQUFFLEtBQUs7S0FDMUQsQ0FBQztJQUVGLElBQUksZUFBZSxFQUFFLENBQUM7UUFDcEIsV0FBVyxDQUNULDZDQUE2QyxDQUM5QyxHQUFHLEdBQUcsZUFBZSxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8saUJBQWlCLEtBQUssUUFBUTtZQUN2QyxXQUFXLENBQUMsZ0NBQWdDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQzs7WUFDL0QsV0FBVyxDQUFDLHdCQUF3QixDQUFDLEdBQUcsTUFBTSxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLGVB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
@@ -0,0 +1,21 @@
1
+ import * as k8s from '@pulumi/kubernetes';
2
+ import { Input, Resource } from '@pulumi/pulumi';
3
+ import { IngressCanary, IngressClassName } from './type';
4
+ interface Props {
5
+ name: string;
6
+ namespace: Input<string>;
7
+ ingressClass?: IngressClassName;
8
+ host: string;
9
+ port?: number;
10
+ proxyUrl: string;
11
+ proxyTlsSecretName?: string;
12
+ certManagerIssuer?: boolean;
13
+ canary?: IngressCanary;
14
+ whitelistIps?: Array<Input<string>>;
15
+ enableModSecurity?: boolean;
16
+ cors?: string[];
17
+ provider: k8s.Provider;
18
+ dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
19
+ }
20
+ declare const _default: ({ name, namespace, host, certManagerIssuer, cors, proxyUrl, proxyTlsSecretName, ingressClass, port, dependsOn, provider, ...others }: Props) => import("@pulumi/kubernetes/networking/v1/ingress").Ingress;
21
+ export default _default;