@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,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyDeploymentRules = exports.defaultResources = exports.defaultPodSecurityContext = exports.defaultSecurityContext = exports.defaultResponseHeaders = void 0;
4
+ var Conts_1 = require("../Ingress/Conts");
5
+ Object.defineProperty(exports, "defaultResponseHeaders", { enumerable: true, get: function () { return Conts_1.defaultResponseHeaders; } });
6
+ exports.defaultSecurityContext = {
7
+ runAsUser: 1000,
8
+ runAsGroup: 3000,
9
+ fsGroup: 2000,
10
+ };
11
+ exports.defaultPodSecurityContext = {
12
+ readOnlyRootFilesystem: false,
13
+ privileged: false,
14
+ runAsNonRoot: true,
15
+ allowPrivilegeEscalation: false,
16
+ fsGroupChangePolicy: 'OnRootMismatch',
17
+ capabilities: {
18
+ add: ['NET_ADMIN', 'SYS_TIME'],
19
+ drop: ['ALL'],
20
+ },
21
+ };
22
+ exports.defaultResources = {
23
+ limits: { cpu: '500m', memory: '500Mi' },
24
+ requests: { cpu: '10m', memory: '100Mi' },
25
+ };
26
+ const disableAutoMountServiceAccount = (obj) => {
27
+ //Update Auto mount Service Account
28
+ obj.spec.template.spec.automountServiceAccountToken = false;
29
+ };
30
+ const applySecurity = (obj) => {
31
+ //Update Security Context
32
+ if (obj.spec.template.spec.securityContext)
33
+ obj.spec.template.spec.securityContext = {
34
+ ...exports.defaultSecurityContext,
35
+ ...obj.spec.template.spec.securityContext,
36
+ };
37
+ else
38
+ obj.spec.template.spec.securityContext = exports.defaultSecurityContext;
39
+ const containers = obj.spec.template.spec.containers;
40
+ containers.forEach((c) => {
41
+ //Update Pod Security Context
42
+ if (c.securityContext)
43
+ c.securityContext = {
44
+ ...exports.defaultPodSecurityContext,
45
+ ...c.securityContext,
46
+ };
47
+ else
48
+ c.securityContext = exports.defaultPodSecurityContext;
49
+ });
50
+ };
51
+ const applyResourceLimits = (obj) => {
52
+ //Update the resources
53
+ const containers = obj.spec.template.spec.containers;
54
+ containers.forEach((c) => {
55
+ //Update the resources
56
+ if (c.resources)
57
+ c.resources = {
58
+ ...exports.defaultResources,
59
+ ...c.resources,
60
+ };
61
+ else
62
+ c.resources = exports.defaultResources;
63
+ });
64
+ };
65
+ const updateRevisionHistoryLimit = (obj) => {
66
+ if (!obj.spec.revisionHistoryLimit) {
67
+ obj.spec.revisionHistoryLimit = 1;
68
+ }
69
+ };
70
+ //Apply Security Context and Resources
71
+ const applyDeploymentRules = (obj, options = { disableServiceAccount: true }) => {
72
+ if (!['DaemonSet', 'Deployment', 'StatefulSet', 'Job', 'CronJob'].includes(obj.kind))
73
+ return obj;
74
+ if (options.ignoredKinds?.includes(obj.kind)) {
75
+ console.warn('applyDeploymentRules ignored:', `${obj.kind}-${obj.metadata.name}`);
76
+ return obj;
77
+ }
78
+ //Update the resources
79
+ applyResourceLimits(obj);
80
+ updateRevisionHistoryLimit(obj);
81
+ // disableAutoMountServiceAccount
82
+ if (options.disableServiceAccount &&
83
+ ['Deployment', 'Job', 'CronJob'].includes(obj.kind)) {
84
+ disableAutoMountServiceAccount(obj);
85
+ }
86
+ if (!options.ignoreSecurityContext) {
87
+ //Update Security Context
88
+ applySecurity(obj);
89
+ }
90
+ return obj;
91
+ };
92
+ exports.applyDeploymentRules = applyDeploymentRules;
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJpdHlSdWxlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9Db3JlL1NlY3VyaXR5UnVsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTBEO0FBQWpELCtHQUFBLHNCQUFzQixPQUFBO0FBRWxCLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsU0FBUyxFQUFFLElBQUk7SUFDZixVQUFVLEVBQUUsSUFBSTtJQUNoQixPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFFVyxRQUFBLHlCQUF5QixHQUFHO0lBQ3ZDLHNCQUFzQixFQUFFLEtBQUs7SUFDN0IsVUFBVSxFQUFFLEtBQUs7SUFDakIsWUFBWSxFQUFFLElBQUk7SUFDbEIsd0JBQXdCLEVBQUUsS0FBSztJQUMvQixtQkFBbUIsRUFBRSxnQkFBZ0I7SUFDckMsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQztRQUM5QixJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUM7S0FDZDtDQUNGLENBQUM7QUFFVyxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtJQUN4QyxRQUFRLEVBQUUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7Q0FDMUMsQ0FBQztBQUVGLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRTtJQUNsRCxtQ0FBbUM7SUFDbkMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLDRCQUE0QixHQUFHLEtBQUssQ0FBQztBQUM5RCxDQUFDLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO0lBQ2pDLHlCQUF5QjtJQUN6QixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FB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
@@ -0,0 +1,20 @@
1
+ import { DefaultK8sArgs } from '../../types';
2
+ import { Input } from '@pulumi/pulumi';
3
+ export declare const defaultBlobFuseMountOptions: string[];
4
+ export declare const defaultBlobNfsMountOptions: string[];
5
+ export interface AzureBlobStorageClassProps extends Omit<DefaultK8sArgs, 'name' | 'namespace'> {
6
+ isDefault?: boolean;
7
+ skuName: 'Premium_LRS' | 'Standard_LRS' | 'StandardSSD_LRS';
8
+ storageAccount: Input<string>;
9
+ fuse?: {
10
+ mountOptions?: Input<string>[];
11
+ };
12
+ nfs?: {
13
+ mountOptions?: Input<string>[];
14
+ };
15
+ }
16
+ declare const _default: ({ fuse, nfs, storageAccount, skuName, isDefault, ...others }: AzureBlobStorageClassProps) => {
17
+ fuseStorageClass: import("@pulumi/kubernetes/storage/v1/storageClass").StorageClass | undefined;
18
+ nfsStorageClass: import("@pulumi/kubernetes/storage/v1/storageClass").StorageClass | undefined;
19
+ };
20
+ export default _default;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultBlobNfsMountOptions = exports.defaultBlobFuseMountOptions = void 0;
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const StackEnv_1 = require("../../../Common/StackEnv");
6
+ exports.defaultBlobFuseMountOptions = [
7
+ '-o allow_other',
8
+ '--file-cache-timeout-in-seconds=120',
9
+ '--use-attr-cache=true',
10
+ '--cancel-list-on-mount-seconds=10',
11
+ '-o attr_timeout=120',
12
+ '-o entry_timeout=120',
13
+ '-o negative_timeout=120',
14
+ '--log-level=LOG_WARNING',
15
+ '--cache-size-mb=1000',
16
+ ];
17
+ exports.defaultBlobNfsMountOptions = [
18
+ '-o allow_other',
19
+ '--file-cache-timeout-in-seconds=120',
20
+ '--use-attr-cache=true',
21
+ '--cancel-list-on-mount-seconds=10',
22
+ '-o attr_timeout=120',
23
+ '-o entry_timeout=120',
24
+ '-o negative_timeout=120',
25
+ '--log-level=LOG_WARNING',
26
+ '--cache-size-mb=1000',
27
+ ];
28
+ exports.default = ({ fuse, nfs, storageAccount, skuName, isDefault, ...others }) => {
29
+ const nfsname = `${StackEnv_1.organization}-azureblob-nfs-${skuName.replace('_', '-')}`.toLowerCase();
30
+ const fusename = `${StackEnv_1.organization}-azureblob-fuse-${skuName.replace('_', '-')}`.toLowerCase();
31
+ const provisioner = 'blob.csi.azure.com';
32
+ let fuseStorageClass = undefined;
33
+ let nfsStorageClass = undefined;
34
+ if (fuse)
35
+ fuseStorageClass = new k8s.storage.v1.StorageClass(fusename, {
36
+ metadata: {
37
+ name: fusename,
38
+ annotations: isDefault
39
+ ? {
40
+ 'storageclass.kubernetes.io/is-default-class': 'true',
41
+ }
42
+ : undefined,
43
+ },
44
+ provisioner,
45
+ allowVolumeExpansion: true,
46
+ reclaimPolicy: 'Delete',
47
+ volumeBindingMode: 'Immediate',
48
+ parameters: {
49
+ storageAccount,
50
+ skuName,
51
+ },
52
+ mountOptions: exports.defaultBlobFuseMountOptions,
53
+ }, others);
54
+ if (nfs)
55
+ nfsStorageClass = new k8s.storage.v1.StorageClass(nfsname, {
56
+ metadata: {
57
+ name: nfsname,
58
+ annotations: isDefault
59
+ ? {
60
+ 'storageclass.kubernetes.io/is-default-class': 'true',
61
+ }
62
+ : undefined,
63
+ },
64
+ provisioner,
65
+ allowVolumeExpansion: true,
66
+ reclaimPolicy: 'Delete',
67
+ volumeBindingMode: 'Immediate',
68
+ parameters: {
69
+ protocol: 'nfs',
70
+ storageAccount,
71
+ skuName,
72
+ },
73
+ //mountOptions: defaultBlobFuseMountOptions,
74
+ }, others);
75
+ return { fuseStorageClass, nfsStorageClass };
76
+ };
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmVCbG9iLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0t1YmVYL0NvcmUvU3RvcmFnZUNsYXNzL2F6dXJlQmxvYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwQ0FBMEM7QUFHMUMsdURBQXdEO0FBRTNDLFFBQUEsMkJBQTJCLEdBQUc7SUFDekMsZ0JBQWdCO0lBQ2hCLHFDQUFxQztJQUNyQyx1QkFBdUI7SUFDdkIsbUNBQW1DO0lBQ25DLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6QixzQkFBc0I7Q0FDdkIsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQUc7SUFDeEMsZ0JBQWdCO0lBQ2hCLHFDQUFxQztJQUNyQyx1QkFBdUI7SUFDdkIsbUNBQW1DO0lBQ25DLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIseUJBQXlCO0lBQ3pCLHlCQUF5QjtJQUN6QixzQkFBc0I7Q0FDdkIsQ0FBQztBQWVGLGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osR0FBRyxFQUNILGNBQWMsRUFDZCxPQUFPLEVBQ1AsU0FBUyxFQUNULEdBQUcsTUFBTSxFQUNrQixFQUFFLEVBQUU7SUFDL0IsTUFBTSxPQUFPLEdBQUcsR0FBRyx1QkFBWSxrQkFBa0IsT0FBTyxDQUFDLE9BQU8sQ0FDOUQsR0FBRyxFQUNILEdBQUcsQ0FDSixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEIsTUFBTSxRQUFRLEdBQUcsR0FBRyx1QkFBWSxtQkFBbUIsT0FBTyxDQUFDLE9BQU8sQ0FDaEUsR0FBRyxFQUNILEdBQUcsQ0FDSixFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEIsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUM7SUFFekMsSUFBSSxnQkFBZ0IsR0FBNEMsU0FBUyxDQUFDO0lBQzFFLElBQUksZUFBZSxHQUE0QyxTQUFTLENBQUM7SUFFekUsSUFBSSxJQUFJO1FBQ04sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQ2hELFFBQVEsRUFDUjtZQUNFLFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsUUFBUTtnQkFDZCxXQUFXLEVBQUUsU0FBUztvQkFDcEIsQ0FBQyxDQUFDO3dCQUNFLDZDQUE2QyxFQUFFLE1BQU07cUJBQ3REO29CQUNILENBQUMsQ0FBQyxTQUFTO2FBQ2Q7WUFDRCxXQUFXO1lBQ1gsb0JBQW9CLEVBQUUsSUFBSTtZQUMxQixhQUFhLEVBQUUsUUFBUTtZQUN2QixpQkFBaUIsRUFBRSxXQUFXO1lBQzlCLFVBQVUsRUFBRTtnQkFDVixjQUFjO2dCQUNkLE9BQU87YUFDUjtZQUNELFlBQVksRUFBRSxtQ0FBMkI7U0FDMUMsRUFDRCxNQUFNLENBQ1AsQ0FBQztJQUVKLElBQUksR0FBRztRQUNMLGVBQWUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FDL0MsT0FBTyxFQUNQO1lBQ0UsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxPQUFPO2dCQUNiLFdBQVcsRUFBRSxTQUFTO29CQUNwQixDQUFDLENBQUM7d0JBQ0UsNkNBQTZDLEVBQUUsTUFBTTtxQkFDdEQ7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtZQUNELFdBQVc7WUFDWCxvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLGlCQUFpQixFQUFFLFdBQVc7WUFDOUIsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxLQUFLO2dCQUNmLGNBQWM7Z0JBQ2QsT0FBTzthQUNSO1lBQ0QsNENBQTRDO1NBQzdDLEVBQ0QsTUFBTSxDQUNQLENBQUM7SUFFSixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLENBQUM7QUFDL0MsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,17 @@
1
+ import { DefaultK8sArgs } from '../../types';
2
+ import { Input } from '@pulumi/pulumi';
3
+ /** Sample mount options of the AzureFile*/
4
+ export type RunAsType = {
5
+ runAsUser: number;
6
+ runAsGroup: number;
7
+ };
8
+ export declare const defaultAzureFileMountOptions: string[];
9
+ export declare const getAzureFileMountOptions: ({ runAsUser, runAsGroup, }: RunAsType) => string[];
10
+ export interface AzureFileStorageClassProps extends Omit<DefaultK8sArgs, 'name' | 'namespace'> {
11
+ isDefault?: boolean;
12
+ storageAccount: Input<string>;
13
+ skuName: 'Premium_LRS' | 'Standard_LRS' | 'StandardSSD_LRS';
14
+ mountOptions?: RunAsType;
15
+ }
16
+ declare const _default: ({ skuName, mountOptions, storageAccount, isDefault, ...others }: AzureFileStorageClassProps) => import("@pulumi/kubernetes/storage/v1/storageClass").StorageClass;
17
+ export default _default;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAzureFileMountOptions = exports.defaultAzureFileMountOptions = void 0;
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const StackEnv_1 = require("../../../Common/StackEnv");
6
+ exports.defaultAzureFileMountOptions = [
7
+ 'mfsymlinks',
8
+ 'cache=strict',
9
+ 'nosharesock',
10
+ ];
11
+ const getAzureFileMountOptions = ({ runAsUser, runAsGroup, }) => [
12
+ 'dir_mode=0777',
13
+ 'file_mode=0777',
14
+ `uid=${runAsUser}`,
15
+ `gid=${runAsGroup}`,
16
+ 'mfsymlinks',
17
+ 'cache=strict',
18
+ 'nosharesock',
19
+ ];
20
+ exports.getAzureFileMountOptions = getAzureFileMountOptions;
21
+ exports.default = ({ skuName, mountOptions, storageAccount, isDefault, ...others }) => {
22
+ const name = `${StackEnv_1.organization}-azurefile-${skuName.replace('_', '-')}`.toLowerCase();
23
+ return new k8s.storage.v1.StorageClass(name, {
24
+ metadata: {
25
+ name,
26
+ annotations: isDefault
27
+ ? {
28
+ 'storageclass.kubernetes.io/is-default-class': 'true',
29
+ }
30
+ : undefined,
31
+ },
32
+ provisioner: 'file.csi.azure.com',
33
+ allowVolumeExpansion: true,
34
+ reclaimPolicy: 'Delete',
35
+ volumeBindingMode: 'Immediate',
36
+ parameters: {
37
+ storageAccount,
38
+ skuName,
39
+ },
40
+ mountOptions: mountOptions
41
+ ? (0, exports.getAzureFileMountOptions)(mountOptions)
42
+ : exports.defaultAzureFileMountOptions,
43
+ }, others);
44
+ };
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmVGaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0t1YmVYL0NvcmUvU3RvcmFnZUNsYXNzL2F6dXJlRmlsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwQ0FBMEM7QUFHMUMsdURBQXdEO0FBUTNDLFFBQUEsNEJBQTRCLEdBQUc7SUFDMUMsWUFBWTtJQUNaLGNBQWM7SUFDZCxhQUFhO0NBQ2QsQ0FBQztBQUNLLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxFQUN2QyxTQUFTLEVBQ1QsVUFBVSxHQUNBLEVBQUUsRUFBRSxDQUFDO0lBQ2YsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixPQUFPLFNBQVMsRUFBRTtJQUNsQixPQUFPLFVBQVUsRUFBRTtJQUNuQixZQUFZO0lBQ1osY0FBYztJQUNkLGFBQWE7Q0FDZCxDQUFDO0FBWFcsUUFBQSx3QkFBd0IsNEJBV25DO0FBVUYsa0JBQWUsQ0FBQyxFQUNkLE9BQU8sRUFDUCxZQUFZLEVBQ1osY0FBYyxFQUNkLFNBQVMsRUFDVCxHQUFHLE1BQU0sRUFDa0IsRUFBRSxFQUFFO0lBQy9CLE1BQU0sSUFBSSxHQUFHLEdBQUcsdUJBQVksY0FBYyxPQUFPLENBQUMsT0FBTyxDQUN2RCxHQUFHLEVBQ0gsR0FBRyxDQUNKLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVsQixPQUFPLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUNwQyxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osV0FBVyxFQUFFLFNBQVM7Z0JBQ3BCLENBQUMsQ0FBQztvQkFDRSw2Q0FBNkMsRUFBRSxNQUFNO2lCQUN0RDtnQkFDSCxDQUFDLENBQUMsU0FBUztTQUNkO1FBQ0QsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxvQkFBb0IsRUFBRSxJQUFJO1FBQzFCLGFBQWEsRUFBRSxRQUFRO1FBQ3ZCLGlCQUFpQixFQUFFLFdBQVc7UUFDOUIsVUFBVSxFQUFFO1lBQ1YsY0FBYztZQUNkLE9BQU87U0FDUjtRQUNELFlBQVksRUFBRSxZQUFZO1lBQ3hCLENBQUMsQ0FBQyxJQUFBLGdDQUF3QixFQUFDLFlBQVksQ0FBQztZQUN4QyxDQUFDLENBQUMsb0NBQTRCO0tBQ2pDLEVBQ0QsTUFBTSxDQUNQLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -0,0 +1,13 @@
1
+ import { AzureFileStorageClassProps, RunAsType } from './azureFile';
2
+ import { AzureBlobStorageClassProps } from './azureBlob';
3
+ export interface StorageClassProps extends Omit<AzureFileStorageClassProps, 'mountOptions'>, Pick<AzureBlobStorageClassProps, 'fuse' | 'nfs'> {
4
+ azureFile?: {
5
+ mountOptions?: RunAsType;
6
+ };
7
+ }
8
+ declare const _default: ({ azureFile, fuse, nfs, ...others }: StorageClassProps) => {
9
+ azureFileStorageClass: import("@pulumi/kubernetes/storage/v1/storageClass").StorageClass | undefined;
10
+ azureBlobFuseStorageClass: import("@pulumi/kubernetes/storage/v1/storageClass").StorageClass | undefined;
11
+ azureBlobNfsStorageClass: import("@pulumi/kubernetes/storage/v1/storageClass").StorageClass | undefined;
12
+ };
13
+ export default _default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const azureFile_1 = require("./azureFile");
4
+ const azureBlob_1 = require("./azureBlob");
5
+ exports.default = ({ azureFile, fuse, nfs, ...others }) => {
6
+ let azureFileStorageClass = undefined;
7
+ let azureBlobFuseStorageClass = undefined;
8
+ let azureBlobNfsStorageClass = undefined;
9
+ if (azureFile)
10
+ azureFileStorageClass = (0, azureFile_1.default)({
11
+ ...others,
12
+ mountOptions: azureFile.mountOptions,
13
+ });
14
+ if (fuse || nfs) {
15
+ const rs = (0, azureBlob_1.default)({ ...others, fuse, nfs });
16
+ azureBlobFuseStorageClass = rs.fuseStorageClass;
17
+ azureBlobNfsStorageClass = rs.nfsStorageClass;
18
+ }
19
+ return {
20
+ azureFileStorageClass,
21
+ azureBlobFuseStorageClass,
22
+ azureBlobNfsStorageClass,
23
+ };
24
+ };
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvQ29yZS9TdG9yYWdlQ2xhc3MvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSwyQ0FBZ0Q7QUFDaEQsMkNBQWdEO0FBV2hELGtCQUFlLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBcUIsRUFBRSxFQUFFO0lBQ3hFLElBQUkscUJBQXFCLEdBQ3ZCLFNBQVMsQ0FBQztJQUNaLElBQUkseUJBQXlCLEdBQzNCLFNBQVMsQ0FBQztJQUNaLElBQUksd0JBQXdCLEdBQzFCLFNBQVMsQ0FBQztJQUVaLElBQUksU0FBUztRQUNYLHFCQUFxQixHQUFHLElBQUEsbUJBQXFCLEVBQUM7WUFDNUMsR0FBRyxNQUFNO1lBQ1QsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO1NBQ3JDLENBQUMsQ0FBQztJQUVMLElBQUksSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxHQUFHLElBQUEsbUJBQXFCLEVBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUMzRCx5QkFBeUIsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsd0JBQXdCLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsT0FBTztRQUNMLHFCQUFxQjtRQUNyQix5QkFBeUI7UUFDekIsd0JBQXdCO0tBQ3pCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -0,0 +1,57 @@
1
+ import { MonitoringProps } from './Monitoring';
2
+ import { CertManagerProps } from './CertManager';
3
+ import { Input, Resource } from '@pulumi/pulumi';
4
+ import { StorageClassProps } from './StorageClass';
5
+ import { K8sArgs } from '../types';
6
+ import { MetalLBProps } from './LoadBalancer/MetalLB';
7
+ import { LonghornProps } from '../Storage/Longhorn';
8
+ interface NginxItemProps {
9
+ name: string;
10
+ publicIpAddress?: string;
11
+ /**Use this in case the ingress behind a firewall*/
12
+ internalIpAddress?: string;
13
+ /**Expose TCP Ports {port: dnsName} */
14
+ tcp?: {
15
+ [key: number]: string;
16
+ };
17
+ /**Expose UDP ports {port: dnsName} */
18
+ udp?: {
19
+ [key: number]: string;
20
+ };
21
+ }
22
+ interface NginxProps {
23
+ namespace: string;
24
+ version?: string;
25
+ replicaCount?: number;
26
+ vnetResourceGroup?: string;
27
+ internalIngress?: boolean;
28
+ allowSnippetAnnotations?: boolean;
29
+ public?: NginxItemProps & {
30
+ forceUseIngressClass?: boolean;
31
+ };
32
+ private?: Omit<NginxItemProps, 'publicIpAddress'>;
33
+ }
34
+ interface Props extends K8sArgs {
35
+ namespaces: Array<{
36
+ name: string;
37
+ labels?: {
38
+ [key: string]: string;
39
+ };
40
+ }>;
41
+ metalLb?: Omit<MetalLBProps, 'provider' | 'dependsOn'>;
42
+ longhorn?: Omit<LonghornProps, 'provider' | 'dependsOn'>;
43
+ nginx?: NginxProps;
44
+ monitoring?: Omit<MonitoringProps, 'provider' | 'dependsOn'>;
45
+ certManager?: Omit<CertManagerProps, 'namespace' | 'provider' | 'dependsOn'>;
46
+ storageClasses?: {
47
+ [key: string]: Omit<StorageClassProps, 'provider' | 'name'>;
48
+ };
49
+ enableStaticIpEgress?: {
50
+ publicIpAddress?: Input<string>;
51
+ };
52
+ }
53
+ declare const _default: ({ namespaces, provider, dependsOn, metalLb, longhorn, nginx, monitoring, certManager, storageClasses, }: Props) => Promise<{
54
+ namespacesList: import("@pulumi/kubernetes/core/v1/namespace").Namespace[];
55
+ resources: Resource[];
56
+ }>;
57
+ export default _default;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Namespace_1 = require("./Namespace");
4
+ const Nginx_1 = require("./Nginx");
5
+ const Monitoring_1 = require("./Monitoring");
6
+ const CertManager_1 = require("./CertManager");
7
+ const StorageClass_1 = require("./StorageClass");
8
+ const MetalLB_1 = require("./LoadBalancer/MetalLB");
9
+ const Longhorn_1 = require("../Storage/Longhorn");
10
+ exports.default = async ({ namespaces, provider, dependsOn, metalLb, longhorn, nginx, monitoring, certManager, storageClasses, }) => {
11
+ //Create Namespaces
12
+ const namespacesList = namespaces.map((n) => (0, Namespace_1.default)({ ...n, provider }));
13
+ const resources = new Array();
14
+ if (metalLb) {
15
+ const lb = (0, MetalLB_1.default)({ ...metalLb, provider, dependsOn });
16
+ resources.push(lb);
17
+ }
18
+ if (nginx) {
19
+ const rs = nginxCreator({ ...nginx, provider, dependsOn: resources });
20
+ if (rs.publicIngress)
21
+ resources.push(rs.publicIngress);
22
+ if (rs.privateIngress)
23
+ resources.push(rs.privateIngress);
24
+ }
25
+ if (storageClasses) {
26
+ Object.keys(storageClasses).forEach((k) => {
27
+ const c = storageClasses[k];
28
+ if (!c)
29
+ return undefined;
30
+ return (0, StorageClass_1.default)({ provider, ...c });
31
+ });
32
+ }
33
+ if (certManager) {
34
+ resources.push((0, CertManager_1.default)({
35
+ ...certManager,
36
+ provider,
37
+ dependsOn: resources,
38
+ }));
39
+ }
40
+ if (monitoring) {
41
+ resources.push(await (0, Monitoring_1.default)({ ...monitoring, provider, dependsOn }));
42
+ }
43
+ if (longhorn) {
44
+ resources.push((0, Longhorn_1.default)({ ...longhorn, provider, dependsOn }));
45
+ }
46
+ return { namespacesList, resources };
47
+ };
48
+ const nginxCreator = ({ namespace, version, replicaCount, vnetResourceGroup, internalIngress, allowSnippetAnnotations, provider, ...info }) => {
49
+ //Namespace
50
+ const ns = (0, Namespace_1.default)({ name: namespace, provider });
51
+ let privateIngress;
52
+ let publicIngress;
53
+ if (info.public) {
54
+ //Public
55
+ publicIngress = (0, Nginx_1.default)({
56
+ name: info.public.name,
57
+ version,
58
+ namespace,
59
+ replicaCount,
60
+ allowSnippetAnnotations,
61
+ useIngressClassOnly: info.public.forceUseIngressClass || info.private !== undefined,
62
+ tcp: info.public.tcp,
63
+ udp: info.public.udp,
64
+ network: {
65
+ internalIngress,
66
+ vnetResourceGroup,
67
+ loadBalancerIP: info.public.publicIpAddress || info.public.internalIpAddress,
68
+ },
69
+ provider,
70
+ dependsOn: ns,
71
+ });
72
+ }
73
+ if (info.private) {
74
+ //Private
75
+ privateIngress = (0, Nginx_1.default)({
76
+ name: info.private.name,
77
+ version,
78
+ namespace,
79
+ useIngressClassOnly: true,
80
+ allowSnippetAnnotations,
81
+ tcp: info.private.tcp,
82
+ udp: info.private.udp,
83
+ network: {
84
+ internalIngress,
85
+ vnetResourceGroup,
86
+ loadBalancerIP: info.private.internalIpAddress,
87
+ },
88
+ provider,
89
+ dependsOn: ns,
90
+ });
91
+ }
92
+ return { publicIngress, privateIngress };
93
+ };
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvQ29yZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDJDQUFvQztBQUNwQyxtQ0FBNEI7QUFDNUIsNkNBQTJEO0FBQzNELCtDQUE4RDtBQUU5RCxpREFBaUU7QUFFakUsb0RBQStEO0FBQy9ELGtEQUE4RDtBQTJDOUQsa0JBQWUsS0FBSyxFQUFFLEVBQ3BCLFVBQVUsRUFDVixRQUFRLEVBQ1IsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsS0FBSyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsY0FBYyxHQUNSLEVBQUUsRUFBRTtJQUNWLG1CQUFtQjtJQUNuQixNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFBLG1CQUFTLEVBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUUsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQVksQ0FBQztJQUV4QyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1osTUFBTSxFQUFFLEdBQUcsSUFBQSxpQkFBTyxFQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDeEQsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNWLE1BQU0sRUFBRSxHQUFHLFlBQVksQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUN0RSxJQUFJLEVBQUUsQ0FBQyxhQUFhO1lBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkQsSUFBSSxFQUFFLENBQUMsY0FBYztZ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
@@ -0,0 +1,11 @@
1
+ import { MySqlProps } from '../types';
2
+ import * as k8s from '@pulumi/kubernetes';
3
+ interface MariaDbProps extends MySqlProps {
4
+ }
5
+ declare const _default: ({ name, namespace, version, vaultInfo, auth, storageClassName, provider, }: MariaDbProps) => {
6
+ mariadb: k8s.helm.v3.Chart;
7
+ host: import("@pulumi/pulumi").Output<string>;
8
+ username: string;
9
+ password: import("@pulumi/pulumi").Input<string>;
10
+ };
11
+ export default _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Random_1 = require("../../Core/Random");
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const pulumi_1 = require("@pulumi/pulumi");
6
+ exports.default = ({ name = 'mariadb', namespace, version, vaultInfo, auth, storageClassName, provider, }) => {
7
+ const password = auth?.rootPass
8
+ ? auth.rootPass
9
+ : (0, Random_1.randomPassword)({
10
+ name,
11
+ length: 25,
12
+ options: { special: false },
13
+ vaultInfo,
14
+ }).result;
15
+ const mariadb = new k8s.helm.v3.Chart(name, {
16
+ namespace,
17
+ chart: 'mariadb',
18
+ fetchOpts: { repo: 'https://charts.bitnami.com/bitnami' },
19
+ values: {
20
+ global: {
21
+ storageClass: storageClassName,
22
+ },
23
+ image: { tag: version },
24
+ auth: {
25
+ rootPassword: password,
26
+ password,
27
+ username: name,
28
+ database: name,
29
+ },
30
+ },
31
+ }, { provider });
32
+ return {
33
+ mariadb,
34
+ host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
35
+ username: name,
36
+ password,
37
+ };
38
+ };
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFyaWFEYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9EYXRhYmFzZXMvTWFyaWFEYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUFtRDtBQUNuRCwwQ0FBMEM7QUFDMUMsMkNBQTZDO0FBSTdDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsU0FBUyxFQUNoQixTQUFTLEVBQ1QsT0FBTyxFQUNQLFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLFFBQVEsR0FDSyxFQUFFLEVBQUU7SUFDakIsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLFFBQVE7UUFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO1FBQ2YsQ0FBQyxDQUFDLElBQUEsdUJBQWMsRUFBQztZQUNiLElBQUk7WUFDSixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDM0IsU0FBUztTQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFZCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDbkMsSUFBSSxFQUNKO1FBQ0UsU0FBUztRQUNULEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRTtRQUV6RCxNQUFNLEVBQUU7WUFDTixNQUFNLEVBQUU7Z0JBQ04sWUFBWSxFQUFFLGdCQUFnQjthQUMvQjtZQUNELEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDdkIsSUFBSSxFQUFFO2dCQUNKLFlBQVksRUFBRSxRQUFRO2dCQUN0QixRQUFRO2dCQUNSLFFBQVEsRUFBRSxJQUFJO2dCQUNkLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO0lBRUYsT0FBTztRQUNMLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBQSxvQkFBVyxFQUFBLEdBQUcsSUFBSSxJQUFJLFNBQVMsb0JBQW9CO1FBQ3pELFFBQVEsRUFBRSxJQUFJO1FBQ2QsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDLENBQUMifQ==
@@ -0,0 +1,11 @@
1
+ import { MySqlProps } from '../types';
2
+ import * as k8s from '@pulumi/kubernetes';
3
+ interface MariaDbProps extends MySqlProps {
4
+ }
5
+ declare const _default: ({ name, namespace, version, auth, vaultInfo, storageClassName, provider, }: MariaDbProps) => {
6
+ mysql: k8s.helm.v3.Chart;
7
+ host: import("@pulumi/pulumi").Output<string>;
8
+ username: string;
9
+ password: import("@pulumi/pulumi").Input<string>;
10
+ };
11
+ export default _default;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Random_1 = require("../../Core/Random");
4
+ const k8s = require("@pulumi/kubernetes");
5
+ const pulumi_1 = require("@pulumi/pulumi");
6
+ exports.default = ({ name = 'mysql', namespace, version, auth, vaultInfo, storageClassName, provider, }) => {
7
+ const password = auth?.rootPass
8
+ ? auth.rootPass
9
+ : (0, Random_1.randomPassword)({
10
+ name,
11
+ length: 25,
12
+ options: { special: false },
13
+ policy: false,
14
+ vaultInfo,
15
+ }).result;
16
+ const mysql = new k8s.helm.v3.Chart(name, {
17
+ namespace,
18
+ chart: 'mysql',
19
+ fetchOpts: { repo: 'https://charts.bitnami.com/bitnami' },
20
+ values: {
21
+ global: {
22
+ storageClass: storageClassName,
23
+ },
24
+ image: { tag: version },
25
+ auth: {
26
+ rootPassword: password,
27
+ password,
28
+ username: name,
29
+ database: name,
30
+ },
31
+ },
32
+ }, { provider });
33
+ return {
34
+ mysql,
35
+ host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
36
+ username: name,
37
+ password,
38
+ };
39
+ };
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWwuVjIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvRGF0YWJhc2VzL015U3FsLlYyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsOENBQW1EO0FBQ25ELDBDQUEwQztBQUMxQywyQ0FBNkM7QUFJN0Msa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxPQUFPLEVBQ2QsU0FBUyxFQUNULE9BQU8sRUFDUCxJQUFJLEVBQ0osU0FBUyxFQUNULGdCQUFnQixFQUNoQixRQUFRLEdBQ0ssRUFBRSxFQUFFO0lBQ2pCLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRO1FBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNmLENBQUMsQ0FBQyxJQUFBLHVCQUFjLEVBQUM7WUFDYixJQUFJO1lBQ0osTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsU0FBUztTQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFZCxNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDakMsSUFBSSxFQUNKO1FBQ0UsU0FBUztRQUNULEtBQUssRUFBRSxPQUFPO1FBQ2QsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLG9DQUFvQyxFQUFFO1FBRXpELE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsZ0JBQWdCO2FBQy9CO1lBQ0QsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRTtZQUN2QixJQUFJLEVBQUU7Z0JBQ0osWUFBWSxFQUFFLFFBQVE7Z0JBQ3RCLFFBQVE7Z0JBQ1IsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsUUFBUSxFQUFFLElBQUk7YUFDZjtTQUNGO0tBQ0YsRUFDRCxFQUFFLFFBQVEsRUFBRSxDQUNiLENBQUM7SUFFRixPQUFPO1FBQ0wsS0FBSztRQUNMLElBQUksRUFBRSxJQUFBLG9CQUFXLEVBQUEsR0FBRyxJQUFJLElBQUksU0FBUyxvQkFBb0I7UUFDekQsUUFBUSxFQUFFLElBQUk7UUFDZCxRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
@@ -0,0 +1,13 @@
1
+ import { MySqlProps } from '../types';
2
+ declare const _default: ({ name, namespace, version, customPort, useClusterIP, vaultInfo, storageClassName, auth, ...others }: MySqlProps) => {
3
+ mysql: {
4
+ deployment: import("../kx").Deployment | undefined;
5
+ service: import("../kx").Service | undefined;
6
+ jobs: (import("@pulumi/kubernetes/batch/v1/cronJob").CronJob | import("../kx").Job)[] | undefined;
7
+ };
8
+ host: import("@pulumi/pulumi").Output<string>;
9
+ port: number;
10
+ username: string;
11
+ password: import("@pulumi/pulumi").Input<string>;
12
+ };
13
+ export default _default;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Random_1 = require("../../Core/Random");
4
+ const pulumi_1 = require("@pulumi/pulumi");
5
+ const Deployment_1 = require("../Deployment");
6
+ const Storage_1 = require("../Storage");
7
+ exports.default = ({ name = 'mysql', namespace, version = 'latest', customPort, useClusterIP, vaultInfo, storageClassName, auth, ...others }) => {
8
+ const password = auth?.rootPass ||
9
+ (0, Random_1.randomPassword)({
10
+ name,
11
+ length: 25,
12
+ policy: false,
13
+ options: { special: false },
14
+ vaultInfo,
15
+ }).result;
16
+ const persisVolume = (0, Storage_1.createPVCForStorageClass)({
17
+ name,
18
+ namespace,
19
+ accessMode: 'ReadWriteMany',
20
+ ...others,
21
+ storageClassName,
22
+ });
23
+ const port = 3306;
24
+ const mysql = (0, Deployment_1.default)({
25
+ name,
26
+ namespace,
27
+ ...others,
28
+ secrets: { MYSQL_ROOT_PASSWORD: password },
29
+ podConfig: {
30
+ ports: { http: port },
31
+ image: `mysql:${version}`,
32
+ volumes: [
33
+ {
34
+ name: 'mysql-data',
35
+ persistentVolumeClaim: persisVolume.metadata.name,
36
+ mountPath: '/var/lib/mysql',
37
+ readOnly: false,
38
+ },
39
+ ],
40
+ podSecurityContext: { runAsGroup: 1001, runAsUser: 1001 },
41
+ },
42
+ deploymentConfig: {
43
+ args: ['--default-authentication-plugin=mysql_native_password'],
44
+ },
45
+ //serviceConfig: { port: customPort || port, useClusterIP },
46
+ });
47
+ return {
48
+ mysql,
49
+ host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
50
+ port,
51
+ username: 'root',
52
+ password,
53
+ };
54
+ };
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTXlTcWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvRGF0YWJhc2VzL015U3FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsOENBQW1EO0FBQ25ELDJDQUE2QztBQUM3Qyw4Q0FBdUM7QUFDdkMsd0NBQXNEO0FBR3RELGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsT0FBTyxFQUNkLFNBQVMsRUFDVCxPQUFPLEdBQUcsUUFBUSxFQUNsQixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLEdBQUcsTUFBTSxFQUNFLEVBQUUsRUFBRTtJQUNmLE1BQU0sUUFBUSxHQUNaLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBQSx1QkFBYyxFQUFDO1lBQ2IsSUFBSTtZQUNKLE1BQU0sRUFBRSxFQUFFO1lBQ1YsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQzNCLFNBQVM7U0FDVixDQUFDLENBQUMsTUFBTSxDQUFDO0lBRVosTUFBTSxZQUFZLEdBQUcsSUFBQSxrQ0FBd0IsRUFBQztRQUM1QyxJQUFJO1FBQ0osU0FBUztRQUNULFVBQVUsRUFBRSxlQUFlO1FBQzNCLEdBQUcsTUFBTTtRQUNULGdCQUFnQjtLQUNqQixDQUFDLENBQUM7SUFFSCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBVSxFQUFDO1FBQ3ZCLElBQUk7UUFDSixTQUFTO1FBQ1QsR0FBRyxNQUFNO1FBQ1QsT0FBTyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFO1FBQzFDLFNBQVMsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDckIsS0FBSyxFQUFFLFNBQVMsT0FBTyxFQUFFO1lBQ3pCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIscUJBQXFCLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJO29CQUNqRCxTQUFTLEVBQUUsZ0JBQWdCO29CQUMzQixRQUFRLEVBQUUsS0FBSztpQkFDaEI7YUFDRjtZQUNELGtCQUFrQixFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFO1NBQzFEO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLENBQUMsdURBQXVELENBQUM7U0FDaEU7UUFDRCw0REFBNEQ7S0FDN0QsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLEtBQUs7UUFDTCxJQUFJLEVBQUUsSUFBQSxvQkFBVyxFQUFBLEdBQUcsSUFBSSxJQUFJLFNBQVMsb0JBQW9CO1FBQ3pELElBQUk7UUFDSixRQUFRLEVBQUUsTUFBTTtRQUNoQixRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9