@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.
- package/Aks/Helper.d.ts +43 -0
- package/Aks/Helper.js +72 -0
- package/Aks/Identity.d.ts +14 -0
- package/Aks/Identity.js +32 -0
- package/Aks/VmSetAutoScale/index.d.ts +16 -0
- package/Aks/VmSetAutoScale/index.js +132 -0
- package/Aks/VmSetMonitor/index.d.ts +12 -0
- package/Aks/VmSetMonitor/index.js +67 -0
- package/Aks/index.d.ts +100 -0
- package/Aks/index.js +558 -0
- package/Apim/ApiProduct/Api.d.ts +35 -0
- package/Apim/ApiProduct/Api.js +131 -0
- package/Apim/ApiProduct/OpenApi.d.ts +85 -0
- package/Apim/ApiProduct/OpenApi.js +3 -0
- package/Apim/ApiProduct/PolicyBuilder.d.ts +79 -0
- package/Apim/ApiProduct/PolicyBuilder.js +361 -0
- package/Apim/ApiProduct/Product.d.ts +8 -0
- package/Apim/ApiProduct/Product.js +63 -0
- package/Apim/ApiProduct/SwaggerHelper.d.ts +6 -0
- package/Apim/ApiProduct/SwaggerHelper.js +44 -0
- package/Apim/ApiProduct/index.d.ts +9 -0
- package/Apim/ApiProduct/index.js +22 -0
- package/Apim/Helpers.d.ts +0 -0
- package/Apim/Helpers.js +2 -0
- package/Apim/HookProxy/index.d.ts +20 -0
- package/Apim/HookProxy/index.js +27 -0
- package/Apim/index.d.ts +22 -0
- package/Apim/index.js +118 -0
- package/Apps/LogicApp.d.ts +12 -0
- package/Apps/LogicApp.js +19 -0
- package/Automation/AutoAccount.d.ts +5 -0
- package/Automation/AutoAccount.js +20 -0
- package/AzAd/B2C.d.ts +9 -0
- package/AzAd/B2C.js +38 -0
- package/AzAd/ConditionalPolicies/index.d.ts +0 -0
- package/AzAd/ConditionalPolicies/index.js +2 -0
- package/AzAd/EnvRoles.d.ts +12 -0
- package/AzAd/EnvRoles.js +62 -0
- package/AzAd/GraphDefinition.d.ts +14 -0
- package/AzAd/GraphDefinition.js +5136 -0
- package/AzAd/Group.d.ts +29 -0
- package/AzAd/Group.js +70 -0
- package/AzAd/Helper.d.ts +18 -0
- package/AzAd/Helper.js +37 -0
- package/AzAd/Identities/AzDevOps.d.ts +23 -0
- package/AzAd/Identities/AzDevOps.js +61 -0
- package/AzAd/Identities/AzUserAdRevertSync.d.ts +14 -0
- package/AzAd/Identities/AzUserAdRevertSync.js +18 -0
- package/AzAd/Identity.d.ts +51 -0
- package/AzAd/Identity.js +133 -0
- package/AzAd/ManagedIdentity.d.ts +6 -0
- package/AzAd/ManagedIdentity.js +23 -0
- package/AzAd/Role.d.ts +19 -0
- package/AzAd/Role.js +25 -0
- package/AzAd/RoleAssignment.d.ts +79 -0
- package/AzAd/RoleAssignment.js +48 -0
- package/AzAd/RolesBuiltIn.d.ts +62 -0
- package/AzAd/RolesBuiltIn.js +13841 -0
- package/Cdn/index.d.ts +11 -0
- package/Cdn/index.js +47 -0
- package/Certificate/index.d.ts +41 -0
- package/Certificate/index.js +156 -0
- package/Certificate/p12.d.ts +5 -0
- package/Certificate/p12.js +37 -0
- package/Common/AppConfigs/dotnetConfig.d.ts +15 -0
- package/Common/AppConfigs/dotnetConfig.js +20 -0
- package/Common/AutoTags.d.ts +1 -0
- package/Common/AutoTags.js +24 -0
- package/Common/AzureEnv.d.ts +37 -0
- package/Common/AzureEnv.js +94 -0
- package/Common/ConfigHelper.d.ts +5 -0
- package/Common/ConfigHelper.js +14 -0
- package/Common/GlobalEnv.d.ts +14 -0
- package/Common/GlobalEnv.js +38 -0
- package/Common/Helpers.d.ts +10 -0
- package/Common/Helpers.js +30 -0
- package/Common/Location.d.ts +4 -0
- package/Common/Location.js +23 -0
- package/Common/LocationBuiltIn.d.ts +81 -0
- package/Common/LocationBuiltIn.js +1925 -0
- package/Common/Naming/index.d.ts +62 -0
- package/Common/Naming/index.js +146 -0
- package/Common/ResourceEnv.d.ts +16 -0
- package/Common/ResourceEnv.js +29 -0
- package/Common/StackEnv.d.ts +4 -0
- package/Common/StackEnv.js +22 -0
- package/Common/index.d.ts +5 -0
- package/Common/index.js +9 -0
- package/ContainerRegistry/Helper.d.ts +23 -0
- package/ContainerRegistry/Helper.js +47 -0
- package/ContainerRegistry/index.d.ts +28 -0
- package/ContainerRegistry/index.js +103 -0
- package/Core/Helper.d.ts +16 -0
- package/Core/Helper.js +37 -0
- package/Core/KeyGenetators.d.ts +33 -0
- package/Core/KeyGenetators.js +66 -0
- package/Core/Locker.d.ts +13 -0
- package/Core/Locker.js +14 -0
- package/Core/Random.d.ts +40 -0
- package/Core/Random.js +83 -0
- package/Core/ResourceCreator.d.ts +17 -0
- package/Core/ResourceCreator.js +48 -0
- package/Core/ResourceGroup.d.ts +13 -0
- package/Core/ResourceGroup.js +45 -0
- package/CosmosDb/index.d.ts +33 -0
- package/CosmosDb/index.js +129 -0
- package/CustomRoles/index.d.ts +5 -0
- package/CustomRoles/index.js +27 -0
- package/IOT/Hub/index.d.ts +32 -0
- package/IOT/Hub/index.js +208 -0
- package/KeyVault/CustomHelper.d.ts +35 -0
- package/KeyVault/CustomHelper.js +40 -0
- package/KeyVault/Helper.d.ts +33 -0
- package/KeyVault/Helper.js +58 -0
- package/KeyVault/VaultAccess.d.ts +15 -0
- package/KeyVault/VaultAccess.js +47 -0
- package/KeyVault/VaultPermissions.d.ts +26 -0
- package/KeyVault/VaultPermissions.js +169 -0
- package/KeyVault/index.d.ts +28 -0
- package/KeyVault/index.js +136 -0
- package/KubeX/AcrSecret.d.ts +15 -0
- package/KubeX/AcrSecret.js +31 -0
- package/KubeX/Apps/AstroPage.d.ts +12 -0
- package/KubeX/Apps/AstroPage.js +33 -0
- package/KubeX/Apps/KafKa.d.ts +6 -0
- package/KubeX/Apps/KafKa.js +13 -0
- package/KubeX/Apps/Nobelium.d.ts +13 -0
- package/KubeX/Apps/Nobelium.js +37 -0
- package/KubeX/Apps/Wikijs.d.ts +30 -0
- package/KubeX/Apps/Wikijs.js +54 -0
- package/KubeX/Apps/WordPress.d.ts +24 -0
- package/KubeX/Apps/WordPress.js +55 -0
- package/KubeX/Apps/YarpProxy/index.d.ts +17 -0
- package/KubeX/Apps/YarpProxy/index.js +107 -0
- package/KubeX/Apps/YarpProxy/type.d.ts +55 -0
- package/KubeX/Apps/YarpProxy/type.js +3 -0
- package/KubeX/CertHelper.d.ts +1 -0
- package/KubeX/CertHelper.js +9 -0
- package/KubeX/CertImports.d.ts +19 -0
- package/KubeX/CertImports.js +70 -0
- package/KubeX/CloudFlare/CertCreator.d.ts +19 -0
- package/KubeX/CloudFlare/CertCreator.js +90 -0
- package/KubeX/CloudFlare/CertImports.d.ts +17 -0
- package/KubeX/CloudFlare/CertImports.js +34 -0
- package/KubeX/CloudFlare/DynamicDns.d.ts +21 -0
- package/KubeX/CloudFlare/DynamicDns.js +39 -0
- package/KubeX/CloudFlare/Tunnel-Helm.d.ts +17 -0
- package/KubeX/CloudFlare/Tunnel-Helm.js +12 -0
- package/KubeX/CloudFlare/Tunnel.d.ts +23 -0
- package/KubeX/CloudFlare/Tunnel.js +54 -0
- package/KubeX/CloudFlare/index.d.ts +13 -0
- package/KubeX/CloudFlare/index.js +36 -0
- package/KubeX/Clusters/K3s/AutoUpgradeController/index.d.ts +6 -0
- package/KubeX/Clusters/K3s/AutoUpgradeController/index.js +60 -0
- package/KubeX/ConfigSecret.d.ts +24 -0
- package/KubeX/ConfigSecret.js +38 -0
- package/KubeX/Core/CertManager/index.d.ts +24 -0
- package/KubeX/Core/CertManager/index.js +96 -0
- package/KubeX/Core/KsCertSecret.d.ts +12 -0
- package/KubeX/Core/KsCertSecret.js +22 -0
- package/KubeX/Core/KsSecret.d.ts +9 -0
- package/KubeX/Core/KsSecret.js +12 -0
- package/KubeX/Core/LoadBalancer/MetalLB.d.ts +7 -0
- package/KubeX/Core/LoadBalancer/MetalLB.js +21 -0
- package/KubeX/Core/Monitoring/index.d.ts +22 -0
- package/KubeX/Core/Monitoring/index.js +322 -0
- package/KubeX/Core/Namespace.d.ts +12 -0
- package/KubeX/Core/Namespace.js +41 -0
- package/KubeX/Core/Nginx/index.d.ts +60 -0
- package/KubeX/Core/Nginx/index.js +109 -0
- package/KubeX/Core/OAuthProxy/index.d.ts +0 -0
- package/KubeX/Core/OAuthProxy/index.js +3 -0
- package/KubeX/Core/ResourceQuota.d.ts +12 -0
- package/KubeX/Core/ResourceQuota.js +13 -0
- package/KubeX/Core/SecurityRules.d.ts +34 -0
- package/KubeX/Core/SecurityRules.js +93 -0
- package/KubeX/Core/StorageClass/azureBlob.d.ts +20 -0
- package/KubeX/Core/StorageClass/azureBlob.js +77 -0
- package/KubeX/Core/StorageClass/azureFile.d.ts +17 -0
- package/KubeX/Core/StorageClass/azureFile.js +45 -0
- package/KubeX/Core/StorageClass/index.d.ts +13 -0
- package/KubeX/Core/StorageClass/index.js +25 -0
- package/KubeX/Core/index.d.ts +57 -0
- package/KubeX/Core/index.js +94 -0
- package/KubeX/Databases/MariaDb.d.ts +11 -0
- package/KubeX/Databases/MariaDb.js +39 -0
- package/KubeX/Databases/MySql.V2.d.ts +11 -0
- package/KubeX/Databases/MySql.V2.js +40 -0
- package/KubeX/Databases/MySql.d.ts +13 -0
- package/KubeX/Databases/MySql.js +55 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL-HA.d.ts +10 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL-HA.js +47 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL.d.ts +10 -0
- package/KubeX/Databases/PostgreSql/PostgreSQL.js +51 -0
- package/KubeX/Databases/PostgreSql/PostgreSql.v1.d.ts +13 -0
- package/KubeX/Databases/PostgreSql/PostgreSql.v1.js +56 -0
- package/KubeX/Databases/PostgreSql/index.d.ts +17 -0
- package/KubeX/Databases/PostgreSql/index.js +6 -0
- package/KubeX/Databases/RedisCache.d.ts +14 -0
- package/KubeX/Databases/RedisCache.js +65 -0
- package/KubeX/Databases/SqlServer.d.ts +15 -0
- package/KubeX/Databases/SqlServer.js +77 -0
- package/KubeX/Deployment/PodAutoscaler.d.ts +14 -0
- package/KubeX/Deployment/PodAutoscaler.js +51 -0
- package/KubeX/Deployment/index.d.ts +136 -0
- package/KubeX/Deployment/index.js +306 -0
- package/KubeX/Helpers.d.ts +4 -0
- package/KubeX/Helpers.js +17 -0
- package/KubeX/Ingress/AppGatewayIngress.d.ts +2 -0
- package/KubeX/Ingress/AppGatewayIngress.js +4 -0
- package/KubeX/Ingress/Conts.d.ts +13 -0
- package/KubeX/Ingress/Conts.js +18 -0
- package/KubeX/Ingress/NginxIngress.d.ts +3 -0
- package/KubeX/Ingress/NginxIngress.js +186 -0
- package/KubeX/Ingress/NginxProxy.d.ts +21 -0
- package/KubeX/Ingress/NginxProxy.js +43 -0
- package/KubeX/Ingress/TraefikIngress/CustomHeader.d.ts +15 -0
- package/KubeX/Ingress/TraefikIngress/CustomHeader.js +15 -0
- package/KubeX/Ingress/TraefikIngress/index.d.ts +11 -0
- package/KubeX/Ingress/TraefikIngress/index.js +95 -0
- package/KubeX/Ingress/index.d.ts +5 -0
- package/KubeX/Ingress/index.js +12 -0
- package/KubeX/Ingress/type.d.ts +82 -0
- package/KubeX/Ingress/type.js +3 -0
- package/KubeX/Providers/index.d.ts +8 -0
- package/KubeX/Providers/index.js +15 -0
- package/KubeX/Storage/Longhorn/index.d.ts +15 -0
- package/KubeX/Storage/Longhorn/index.js +54 -0
- package/KubeX/Storage/index.d.ts +25 -0
- package/KubeX/Storage/index.js +79 -0
- package/KubeX/Tools/AWS/LocalStack.d.ts +7 -0
- package/KubeX/Tools/AWS/LocalStack.js +29 -0
- package/KubeX/Tools/AWS/S3.d.ts +6 -0
- package/KubeX/Tools/AWS/S3.js +44 -0
- package/KubeX/Tools/AWS/index.d.ts +7 -0
- package/KubeX/Tools/AWS/index.js +14 -0
- package/KubeX/Tools/AppHealthzMonitor.d.ts +18 -0
- package/KubeX/Tools/AppHealthzMonitor.js +52 -0
- package/KubeX/Tools/ArgoCD/index.d.ts +17 -0
- package/KubeX/Tools/ArgoCD/index.js +131 -0
- package/KubeX/Tools/Dapr/Storage.d.ts +66 -0
- package/KubeX/Tools/Dapr/Storage.js +70 -0
- package/KubeX/Tools/Dapr/index.d.ts +10 -0
- package/KubeX/Tools/Dapr/index.js +31 -0
- package/KubeX/Tools/Echo-App.d.ts +3 -0
- package/KubeX/Tools/Echo-App.js +21 -0
- package/KubeX/Tools/Gitea/GiteaRepo.d.ts +72 -0
- package/KubeX/Tools/Gitea/GiteaRepo.js +184 -0
- package/KubeX/Tools/Gitea/GiteaRunner.d.ts +11 -0
- package/KubeX/Tools/Gitea/GiteaRunner.js +37 -0
- package/KubeX/Tools/Gitea/GiteaRunner.v1.d.ts +11 -0
- package/KubeX/Tools/Gitea/GiteaRunner.v1.js +123 -0
- package/KubeX/Tools/HarborRepo.d.ts +29 -0
- package/KubeX/Tools/HarborRepo.js +78 -0
- package/KubeX/Tools/HelloWorld.d.ts +3 -0
- package/KubeX/Tools/HelloWorld.js +21 -0
- package/KubeX/Tools/KubeCleanup.d.ts +9 -0
- package/KubeX/Tools/KubeCleanup.js +34 -0
- package/KubeX/Tools/NoIp.d.ts +13 -0
- package/KubeX/Tools/NoIp.js +24 -0
- package/KubeX/Tools/OpenLDAP/index.d.ts +12 -0
- package/KubeX/Tools/OpenLDAP/index.js +56 -0
- package/KubeX/Tools/OutlineVpn/index.d.ts +25 -0
- package/KubeX/Tools/OutlineVpn/index.js +256 -0
- package/KubeX/Tools/SqlPad.d.ts +29 -0
- package/KubeX/Tools/SqlPad.js +133 -0
- package/KubeX/Tools/ToolPod.d.ts +10 -0
- package/KubeX/Tools/ToolPod.js +40 -0
- package/KubeX/Tools/UptimeKuma.d.ts +6 -0
- package/KubeX/Tools/UptimeKuma.js +38 -0
- package/KubeX/Tools/index.d.ts +27 -0
- package/KubeX/Tools/index.js +35 -0
- package/KubeX/VairableResolvers/index.d.ts +15 -0
- package/KubeX/VairableResolvers/index.js +49 -0
- package/KubeX/kx/index.d.ts +114 -0
- package/KubeX/kx/index.js +423 -0
- package/KubeX/types.d.ts +49 -0
- package/KubeX/types.js +3 -0
- package/Logs/AppInsight.d.ts +16 -0
- package/Logs/AppInsight.js +48 -0
- package/Logs/Helpers.d.ts +50 -0
- package/Logs/Helpers.js +95 -0
- package/Logs/LogAnalytics.d.ts +17 -0
- package/Logs/LogAnalytics.js +54 -0
- package/Logs/WebTest.d.ts +13 -0
- package/Logs/WebTest.js +68 -0
- package/Logs/index.d.ts +42 -0
- package/Logs/index.js +69 -0
- package/MySql/index.d.ts +20 -0
- package/MySql/index.js +93 -0
- package/Postgresql/index.d.ts +20 -0
- package/Postgresql/index.js +93 -0
- package/ReadMe.md +36 -0
- package/RedisCache/index.d.ts +9 -0
- package/RedisCache/index.js +79 -0
- package/ServiceBus/ServiceBusHelper.d.ts +21 -0
- package/ServiceBus/ServiceBusHelper.js +35 -0
- package/ServiceBus/index.d.ts +98 -0
- package/ServiceBus/index.js +396 -0
- package/SignalR/index.d.ts +20 -0
- package/SignalR/index.js +114 -0
- package/Sql/Auditing.d.ts +0 -0
- package/Sql/Auditing.js +2 -0
- package/Sql/Helper.d.ts +9 -0
- package/Sql/Helper.js +11 -0
- package/Sql/SqlDb.d.ts +14 -0
- package/Sql/SqlDb.js +42 -0
- package/Sql/index.d.ts +44 -0
- package/Sql/index.js +236 -0
- package/Storage/CdnEndpoint.d.ts +12 -0
- package/Storage/CdnEndpoint.js +62 -0
- package/Storage/CdnRules.d.ts +6 -0
- package/Storage/CdnRules.js +134 -0
- package/Storage/Helper.d.ts +28 -0
- package/Storage/Helper.js +66 -0
- package/Storage/ManagementRules.d.ts +70 -0
- package/Storage/ManagementRules.js +32 -0
- package/Storage/index.d.ts +55 -0
- package/Storage/index.js +264 -0
- package/VM/index.d.ts +37 -0
- package/VM/index.js +138 -0
- package/VNet/Bastion.d.ts +8 -0
- package/VNet/Bastion.js +30 -0
- package/VNet/Firewall.d.ts +27 -0
- package/VNet/Firewall.js +87 -0
- package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +20 -0
- package/VNet/FirewallPolicies/AksFirewallPolicy.js +241 -0
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +14 -0
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +303 -0
- package/VNet/FirewallPolicy.d.ts +28 -0
- package/VNet/FirewallPolicy.js +110 -0
- package/VNet/FirewallRules/AksFirewallRules.d.ts +24 -0
- package/VNet/FirewallRules/AksFirewallRules.js +250 -0
- package/VNet/FirewallRules/DefaultRules.d.ts +2 -0
- package/VNet/FirewallRules/DefaultRules.js +23 -0
- package/VNet/FirewallRules/types.d.ts +20 -0
- package/VNet/FirewallRules/types.js +5 -0
- package/VNet/GlobalNetworkPeering.d.ts +9 -0
- package/VNet/GlobalNetworkPeering.js +17 -0
- package/VNet/Helper.d.ts +33 -0
- package/VNet/Helper.js +86 -0
- package/VNet/IpAddress.d.ts +17 -0
- package/VNet/IpAddress.js +38 -0
- package/VNet/IpAddressPrefix.d.ts +22 -0
- package/VNet/IpAddressPrefix.js +42 -0
- package/VNet/NSGRules/AzADService.d.ts +10 -0
- package/VNet/NSGRules/AzADService.js +45 -0
- package/VNet/NetworkPeering.d.ts +10 -0
- package/VNet/NetworkPeering.js +29 -0
- package/VNet/PrivateDns.d.ts +33 -0
- package/VNet/PrivateDns.js +64 -0
- package/VNet/PrivateEndpoint.d.ts +9 -0
- package/VNet/PrivateEndpoint.js +71 -0
- package/VNet/PublicDns.d.ts +21 -0
- package/VNet/PublicDns.js +59 -0
- package/VNet/RouteTable.d.ts +13 -0
- package/VNet/RouteTable.js +23 -0
- package/VNet/SecurityGroup.d.ts +8 -0
- package/VNet/SecurityGroup.js +13 -0
- package/VNet/Subnet.d.ts +26 -0
- package/VNet/Subnet.js +48 -0
- package/VNet/VirtualWAN.d.ts +25 -0
- package/VNet/VirtualWAN.js +40 -0
- package/VNet/Vnet.d.ts +51 -0
- package/VNet/Vnet.js +196 -0
- package/VNet/index.d.ts +65 -0
- package/VNet/index.js +198 -0
- package/Web/AppCertOrder.d.ts +16 -0
- package/Web/AppCertOrder.js +34 -0
- package/Web/AppConfig.d.ts +16 -0
- package/Web/AppConfig.js +79 -0
- package/Web/AppGateway.d.ts +15 -0
- package/Web/AppGateway.js +32 -0
- package/Web/FuncApp.d.ts +12 -0
- package/Web/FuncApp.js +24 -0
- package/Web/Helpers.d.ts +6 -0
- package/Web/Helpers.js +36 -0
- package/Web/WebAppPlan.d.ts +7 -0
- package/Web/WebAppPlan.js +26 -0
- package/Web/types.d.ts +169 -0
- package/Web/types.js +3 -0
- package/package.json +34 -0
- package/types.d.ts +69 -0
- package/types.js +3 -0
- package/z_tests/_tools/Mocks.d.ts +2 -0
- package/z_tests/_tools/Mocks.js +47 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import { PostgreSqlProps } from '../../types';
|
|
3
|
+
declare const _default: ({ name, namespace, vaultInfo, auth, storageClassName, provider, }: PostgreSqlProps) => Promise<{
|
|
4
|
+
postgre: k8s.helm.v3.Chart;
|
|
5
|
+
host: import("@pulumi/pulumi").Output<string>;
|
|
6
|
+
port: number;
|
|
7
|
+
username: string;
|
|
8
|
+
password: import("@pulumi/pulumi").Input<string>;
|
|
9
|
+
}>;
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,47 @@
|
|
|
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 = async ({ name = 'postgre-sql', namespace, 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
|
+
policy: false,
|
|
14
|
+
vaultInfo,
|
|
15
|
+
}).result;
|
|
16
|
+
const postgre = new k8s.helm.v3.Chart(name, {
|
|
17
|
+
namespace,
|
|
18
|
+
chart: 'postgresql-ha',
|
|
19
|
+
fetchOpts: { repo: 'https://charts.bitnami.com/bitnami' },
|
|
20
|
+
skipAwait: true,
|
|
21
|
+
values: {
|
|
22
|
+
global: {
|
|
23
|
+
storageClass: storageClassName,
|
|
24
|
+
//architecture: 'standalone'
|
|
25
|
+
pgpool: {
|
|
26
|
+
//adminUsername: login.userName,
|
|
27
|
+
adminPassword: password,
|
|
28
|
+
},
|
|
29
|
+
postgresql: {
|
|
30
|
+
//username: login.userName,
|
|
31
|
+
password: password,
|
|
32
|
+
//postgresPassword: login.password,
|
|
33
|
+
//repmgrUsername: 'repmgr',
|
|
34
|
+
repmgrPassword: password,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}, { provider });
|
|
39
|
+
return {
|
|
40
|
+
postgre,
|
|
41
|
+
host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
|
|
42
|
+
port: 5432,
|
|
43
|
+
username: 'postgres',
|
|
44
|
+
password,
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdGdyZVNRTC1IQS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9EYXRhYmFzZXMvUG9zdGdyZVNxbC9Qb3N0Z3JlU1FMLUhBLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQXNEO0FBQ3RELDBDQUEwQztBQUMxQywyQ0FBNkM7QUFHN0Msa0JBQWUsS0FBSyxFQUFFLEVBQ3BCLElBQUksR0FBRyxhQUFhLEVBQ3BCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixRQUFRLEdBQ1EsRUFBRSxFQUFFO0lBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRO1FBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNmLENBQUMsQ0FBQyxJQUFBLHVCQUFjLEVBQUM7WUFDYixJQUFJO1lBQ0osTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsU0FBUztTQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFZCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDbkMsSUFBSSxFQUNKO1FBQ0UsU0FBUztRQUNULEtBQUssRUFBRSxlQUFlO1FBQ3RCLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRTtRQUN6RCxTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsZ0JBQWdCO2dCQUM5Qiw0QkFBNEI7Z0JBQzVCLE1BQU0sRUFBRTtvQkFDTixnQ0FBZ0M7b0JBQ2hDLGFBQWEsRUFBRSxRQUFRO2lCQUN4QjtnQkFDRCxVQUFVLEVBQUU7b0JBQ1YsMkJBQTJCO29CQUMzQixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsbUNBQW1DO29CQUNuQywyQkFBMkI7b0JBQzNCLGNBQWMsRUFBRSxRQUFRO2lCQUN6QjthQUNGO1NBQ0Y7S0FDRixFQUNELEVBQUUsUUFBUSxFQUFFLENBQ2IsQ0FBQztJQUVGLE9BQU87UUFDTCxPQUFPO1FBQ1AsSUFBSSxFQUFFLElBQUEsb0JBQVcsRUFBQSxHQUFHLElBQUksSUFBSSxTQUFTLG9CQUFvQjtRQUN6RCxJQUFJLEVBQUUsSUFBSTtRQUNWLFFBQVEsRUFBRSxVQUFVO1FBQ3BCLFFBQVE7S0FDVCxDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import { PostgreSqlProps } from '../../types';
|
|
3
|
+
declare const _default: ({ name, namespace, vaultInfo, auth, storageClassName, provider, }: PostgreSqlProps) => {
|
|
4
|
+
postgre: k8s.helm.v3.Chart;
|
|
5
|
+
host: import("@pulumi/pulumi").Output<string>;
|
|
6
|
+
port: number;
|
|
7
|
+
username: string;
|
|
8
|
+
password: import("@pulumi/pulumi").Input<string>;
|
|
9
|
+
};
|
|
10
|
+
export default _default;
|
|
@@ -0,0 +1,51 @@
|
|
|
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 = 'postgre-sql', namespace, 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
|
+
policy: false,
|
|
14
|
+
vaultInfo,
|
|
15
|
+
}).result;
|
|
16
|
+
const postgre = new k8s.helm.v3.Chart(name, {
|
|
17
|
+
namespace,
|
|
18
|
+
chart: 'postgresql',
|
|
19
|
+
fetchOpts: { repo: 'https://charts.bitnami.com/bitnami' },
|
|
20
|
+
skipAwait: true,
|
|
21
|
+
values: {
|
|
22
|
+
global: {
|
|
23
|
+
storageClass: storageClassName,
|
|
24
|
+
//architecture: 'standalone'
|
|
25
|
+
// postgresql: {
|
|
26
|
+
// auth: {
|
|
27
|
+
// username: 'postgres',
|
|
28
|
+
// database: 'postgres',
|
|
29
|
+
// password: password,
|
|
30
|
+
// postgresPassword: password,
|
|
31
|
+
// },
|
|
32
|
+
// },
|
|
33
|
+
},
|
|
34
|
+
auth: {
|
|
35
|
+
enablePostgresUser: true,
|
|
36
|
+
postgresPassword: password,
|
|
37
|
+
username: 'postgres',
|
|
38
|
+
password: password,
|
|
39
|
+
database: 'postgres',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
}, { provider });
|
|
43
|
+
return {
|
|
44
|
+
postgre,
|
|
45
|
+
host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
|
|
46
|
+
port: 5432,
|
|
47
|
+
username: 'postgres',
|
|
48
|
+
password,
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdGdyZVNRTC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9EYXRhYmFzZXMvUG9zdGdyZVNxbC9Qb3N0Z3JlU1FMLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQXNEO0FBQ3RELDBDQUEwQztBQUMxQywyQ0FBNkM7QUFHN0Msa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxhQUFhLEVBQ3BCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsSUFBSSxFQUNKLGdCQUFnQixFQUNoQixRQUFRLEdBQ1EsRUFBRSxFQUFFO0lBQ3BCLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRO1FBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNmLENBQUMsQ0FBQyxJQUFBLHVCQUFjLEVBQUM7WUFDYixJQUFJO1lBQ0osTUFBTSxFQUFFLEVBQUU7WUFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQzNCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsU0FBUztTQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFZCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDbkMsSUFBSSxFQUNKO1FBQ0UsU0FBUztRQUNULEtBQUssRUFBRSxZQUFZO1FBQ25CLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxvQ0FBb0MsRUFBRTtRQUN6RCxTQUFTLEVBQUUsSUFBSTtRQUNmLE1BQU0sRUFBRTtZQUNOLE1BQU0sRUFBRTtnQkFDTixZQUFZLEVBQUUsZ0JBQWdCO2dCQUM5Qiw0QkFBNEI7Z0JBQzVCLGdCQUFnQjtnQkFDaEIsWUFBWTtnQkFDWiw0QkFBNEI7Z0JBQzVCLDRCQUE0QjtnQkFDNUIsMEJBQTBCO2dCQUMxQixrQ0FBa0M7Z0JBQ2xDLE9BQU87Z0JBQ1AsS0FBSzthQUNOO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLGdCQUFnQixFQUFFLFFBQVE7Z0JBQzFCLFFBQVEsRUFBRSxVQUFVO2dCQUNwQixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsUUFBUSxFQUFFLFVBQVU7YUFDckI7U0FDRjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO0lBRUYsT0FBTztRQUNMLE9BQU87UUFDUCxJQUFJLEVBQUUsSUFBQSxvQkFBVyxFQUFBLEdBQUcsSUFBSSxJQUFJLFNBQVMsb0JBQW9CO1FBQ3pELElBQUksRUFBRSxJQUFJO1FBQ1YsUUFBUSxFQUFFLFVBQVU7UUFDcEIsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PostgreSqlProps } from '../../types';
|
|
2
|
+
declare const _default: ({ name, namespace, vaultInfo, storageClassName, auth, ...others }: PostgreSqlProps) => {
|
|
3
|
+
postgrSsql: {
|
|
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,56 @@
|
|
|
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 = 'postgres', namespace, 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 = 5432;
|
|
24
|
+
const postgrSsql = (0, Deployment_1.default)({
|
|
25
|
+
name,
|
|
26
|
+
namespace,
|
|
27
|
+
...others,
|
|
28
|
+
secrets: { POSTGRES_PASSWORD: password },
|
|
29
|
+
podConfig: {
|
|
30
|
+
ports: { http: port },
|
|
31
|
+
image: `postgres:latest`,
|
|
32
|
+
volumes: [
|
|
33
|
+
{
|
|
34
|
+
name: 'data',
|
|
35
|
+
persistentVolumeClaim: persisVolume.metadata.name,
|
|
36
|
+
mountPath: '/var/lib/postgresql/data',
|
|
37
|
+
subPath: 'data',
|
|
38
|
+
readOnly: false,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
//podSecurityContext: { runAsGroup: 0, runAsUser: 0, runAsNonRoot: false },
|
|
42
|
+
},
|
|
43
|
+
deploymentConfig: {
|
|
44
|
+
//args: ['/bin/chown', '-R', '1001', '/var/lib/postgresql/data'],
|
|
45
|
+
},
|
|
46
|
+
serviceConfig: { usePodPort: true },
|
|
47
|
+
});
|
|
48
|
+
return {
|
|
49
|
+
postgrSsql,
|
|
50
|
+
host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
|
|
51
|
+
port,
|
|
52
|
+
username: 'postgres',
|
|
53
|
+
password,
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9zdGdyZVNxbC52MS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9EYXRhYmFzZXMvUG9zdGdyZVNxbC9Qb3N0Z3JlU3FsLnYxLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQXNEO0FBQ3RELDJDQUE2QztBQUM3QyxpREFBMEM7QUFDMUMsMkNBQXlEO0FBR3pELGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsVUFBVSxFQUNqQixTQUFTLEVBQ1QsU0FBUyxFQUNULGdCQUFnQixFQUNoQixJQUFJLEVBQ0osR0FBRyxNQUFNLEVBQ08sRUFBRSxFQUFFO0lBQ3BCLE1BQU0sUUFBUSxHQUNaLElBQUksRUFBRSxRQUFRO1FBQ2QsSUFBQSx1QkFBYyxFQUFDO1lBQ2IsSUFBSTtZQUNKLE1BQU0sRUFBRSxFQUFFO1lBQ1YsTUFBTSxFQUFFLEtBQUs7WUFDYixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFO1lBQzNCLFNBQVM7U0FDVixDQUFDLENBQUMsTUFBTSxDQUFDO0lBRVosTUFBTSxZQUFZLEdBQUcsSUFBQSxrQ0FBd0IsRUFBQztRQUM1QyxJQUFJO1FBQ0osU0FBUztRQUNULDhCQUE4QjtRQUM5QixHQUFHLE1BQU07UUFDVCxnQkFBZ0I7S0FDakIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ2xCLE1BQU0sVUFBVSxHQUFHLElBQUEsb0JBQVUsRUFBQztRQUM1QixJQUFJO1FBQ0osU0FBUztRQUNULEdBQUcsTUFBTTtRQUNULE9BQU8sRUFBRSxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRTtRQUN4QyxTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxpQkFBaUI7WUFDeEIsT0FBTyxFQUFFO2dCQUNQO29CQUNFLElBQUksRUFBRSxNQUFNO29CQUNaLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSTtvQkFDakQsU0FBUyxFQUFFLDBCQUEwQjtvQkFDckMsT0FBTyxFQUFFLE1BQU07b0JBQ2YsUUFBUSxFQUFFLEtBQUs7aUJBQ2hCO2FBQ0Y7WUFDRCwyRUFBMkU7U0FDNUU7UUFDRCxnQkFBZ0IsRUFBRTtRQUNoQixpRUFBaUU7U0FDbEU7UUFDRCxhQUFhLEVBQUUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFO0tBQ3BDLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxVQUFVO1FBQ1YsSUFBSSxFQUFFLElBQUEsb0JBQVcsRUFBQSxHQUFHLElBQUksSUFBSSxTQUFTLG9CQUFvQjtRQUN6RCxJQUFJO1FBQ0osUUFBUSxFQUFFLFVBQVU7UUFDcEIsUUFBUTtLQUNULENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PostgreSqlProps } from '../../types';
|
|
2
|
+
declare const _default: ({ enableHA, ...others }: PostgreSqlProps & {
|
|
3
|
+
enableHA?: boolean | undefined;
|
|
4
|
+
}) => Promise<{
|
|
5
|
+
postgre: import("@pulumi/kubernetes/helm/v3").Chart;
|
|
6
|
+
host: import("@pulumi/pulumi").Output<string>;
|
|
7
|
+
port: number;
|
|
8
|
+
username: string;
|
|
9
|
+
password: import("@pulumi/pulumi").Input<string>;
|
|
10
|
+
}> | {
|
|
11
|
+
postgre: import("@pulumi/kubernetes/helm/v3").Chart;
|
|
12
|
+
host: import("@pulumi/pulumi").Output<string>;
|
|
13
|
+
port: number;
|
|
14
|
+
username: string;
|
|
15
|
+
password: import("@pulumi/pulumi").Input<string>;
|
|
16
|
+
};
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const PostgreSQL_HA_1 = require("./PostgreSQL-HA");
|
|
4
|
+
const PostgreSQL_1 = require("./PostgreSQL");
|
|
5
|
+
exports.default = ({ enableHA, ...others }) => enableHA ? (0, PostgreSQL_HA_1.default)(others) : (0, PostgreSQL_1.default)(others);
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvRGF0YWJhc2VzL1Bvc3RncmVTcWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtREFBMkM7QUFDM0MsNkNBQXNDO0FBR3RDLGtCQUFlLENBQUMsRUFDZCxRQUFRLEVBQ1IsR0FBRyxNQUFNLEVBQ2dDLEVBQUUsRUFBRSxDQUM3QyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUEsdUJBQVksRUFBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBQSxvQkFBVSxFQUFDLE1BQU0sQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MySqlProps } from '../types';
|
|
2
|
+
interface Props extends MySqlProps {
|
|
3
|
+
version?: string;
|
|
4
|
+
}
|
|
5
|
+
declare const _default: ({ name, namespace, version, vaultInfo, auth, storageClassName, ...others }: Props) => {
|
|
6
|
+
redis: {
|
|
7
|
+
deployment: import("../kx").Deployment | undefined;
|
|
8
|
+
service: import("../kx").Service | undefined;
|
|
9
|
+
jobs: (import("@pulumi/kubernetes/batch/v1/cronJob").CronJob | import("../kx").Job)[] | undefined;
|
|
10
|
+
};
|
|
11
|
+
host: import("@pulumi/pulumi").Output<string>;
|
|
12
|
+
password: import("@pulumi/pulumi").Input<string>;
|
|
13
|
+
};
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Random_1 = require("../../Core/Random");
|
|
4
|
+
const CustomHelper_1 = require("../../KeyVault/CustomHelper");
|
|
5
|
+
const pulumi_1 = require("@pulumi/pulumi");
|
|
6
|
+
const Deployment_1 = require("../Deployment");
|
|
7
|
+
const Storage_1 = require("../Storage");
|
|
8
|
+
exports.default = ({ name = 'redis', namespace, version = 'latest', vaultInfo, auth, storageClassName, ...others }) => {
|
|
9
|
+
const port = 6379;
|
|
10
|
+
const password = auth?.rootPass ||
|
|
11
|
+
(0, Random_1.randomPassword)({
|
|
12
|
+
name,
|
|
13
|
+
length: 25,
|
|
14
|
+
options: { special: false },
|
|
15
|
+
vaultInfo,
|
|
16
|
+
}).result;
|
|
17
|
+
if (vaultInfo) {
|
|
18
|
+
const conn = (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local:${port},password=${password},ssl=False,abortConnect=False`;
|
|
19
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
20
|
+
name: `${name}-conn`,
|
|
21
|
+
vaultInfo,
|
|
22
|
+
value: conn,
|
|
23
|
+
contentType: name,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
const persisVolume = storageClassName
|
|
27
|
+
? (0, Storage_1.createPVCForStorageClass)({
|
|
28
|
+
name,
|
|
29
|
+
namespace,
|
|
30
|
+
...others,
|
|
31
|
+
storageClassName,
|
|
32
|
+
})
|
|
33
|
+
: undefined;
|
|
34
|
+
const redis = (0, Deployment_1.default)({
|
|
35
|
+
name,
|
|
36
|
+
namespace,
|
|
37
|
+
...others,
|
|
38
|
+
secrets: { PASSWORD: password },
|
|
39
|
+
podConfig: {
|
|
40
|
+
ports: { http: port },
|
|
41
|
+
image: `redis:${version}`,
|
|
42
|
+
podSecurityContext: {},
|
|
43
|
+
securityContext: {},
|
|
44
|
+
volumes: persisVolume
|
|
45
|
+
? [
|
|
46
|
+
{
|
|
47
|
+
name: 'redis-data',
|
|
48
|
+
persistentVolumeClaim: persisVolume.metadata.name,
|
|
49
|
+
mountPath: '/data',
|
|
50
|
+
readOnly: false,
|
|
51
|
+
},
|
|
52
|
+
]
|
|
53
|
+
: undefined,
|
|
54
|
+
},
|
|
55
|
+
deploymentConfig: {
|
|
56
|
+
args: [(0, pulumi_1.interpolate) `--requirepass ${password}`],
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
redis,
|
|
61
|
+
host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
|
|
62
|
+
password,
|
|
63
|
+
};
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVkaXNDYWNoZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9EYXRhYmFzZXMvUmVkaXNDYWNoZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUFtRDtBQUNuRCw4REFBOEQ7QUFDOUQsMkNBQTZDO0FBQzdDLDhDQUF1QztBQUN2Qyx3Q0FBc0Q7QUFNdEQsa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxPQUFPLEVBQ2QsU0FBUyxFQUNULE9BQU8sR0FBRyxRQUFRLEVBQ2xCLFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLEdBQUcsTUFBTSxFQUNILEVBQUUsRUFBRTtJQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztJQUVsQixNQUFNLFFBQVEsR0FDWixJQUFJLEVBQUUsUUFBUTtRQUNkLElBQUEsdUJBQWMsRUFBQztZQUNiLElBQUk7WUFDSixNQUFNLEVBQUUsRUFBRTtZQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFDM0IsU0FBUztTQUNWLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFWixJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBQSxvQkFBVyxFQUFBLEdBQUcsSUFBSSxJQUFJLFNBQVMsc0JBQXNCLElBQUksYUFBYSxRQUFRLCtCQUErQixDQUFDO1FBQzNILElBQUEsOEJBQWUsRUFBQztZQUNkLElBQUksRUFBRSxHQUFHLElBQUksT0FBTztZQUNwQixTQUFTO1lBQ1QsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsSUFBSTtTQUNsQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCO1FBQ25DLENBQUMsQ0FBQyxJQUFBLGtDQUF3QixFQUFDO1lBQ3ZCLElBQUk7WUFDSixTQUFTO1lBQ1QsR0FBRyxNQUFNO1lBQ1QsZ0JBQWdCO1NBQ2pCLENBQUM7UUFDSixDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWQsTUFBTSxLQUFLLEdBQUcsSUFBQSxvQkFBVSxFQUFDO1FBQ3ZCLElBQUk7UUFDSixTQUFTO1FBQ1QsR0FBRyxNQUFNO1FBQ1QsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtRQUMvQixTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3JCLEtBQUssRUFBRSxTQUFTLE9BQU8sRUFBRTtZQUN6QixrQkFBa0IsRUFBRSxFQUFFO1lBQ3RCLGVBQWUsRUFBRSxFQUFFO1lBQ25CLE9BQU8sRUFBRSxZQUFZO2dCQUNuQixDQUFDLENBQUM7b0JBQ0U7d0JBQ0UsSUFBSSxFQUFFLFlBQVk7d0JBQ2xCLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSTt3QkFDakQsU0FBUyxFQUFFLE9BQU87d0JBQ2xCLFFBQVEsRUFBRSxLQUFLO3FCQUNoQjtpQkFDRjtnQkFDSCxDQUFDLENBQUMsU0FBUztTQUNkO1FBQ0QsZ0JBQWdCLEVBQUU7WUFDaEIsSUFBSSxFQUFFLENBQUMsSUFBQSxvQkFBVyxFQUFBLGlCQUFpQixRQUFRLEVBQUUsQ0FBQztTQUMvQztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxLQUFLO1FBQ0wsSUFBSSxFQUFFLElBQUEsb0JBQVcsRUFBQSxHQUFHLElBQUksSUFBSSxTQUFTLG9CQUFvQjtRQUN6RCxRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MySqlProps } from '../types';
|
|
2
|
+
interface Props extends MySqlProps {
|
|
3
|
+
databaseNames?: string[];
|
|
4
|
+
}
|
|
5
|
+
declare const _default: ({ name, namespace, databaseNames, vaultInfo, auth, storageClassName, provider, }: Props) => {
|
|
6
|
+
sql: {
|
|
7
|
+
deployment: import("../kx").Deployment | undefined;
|
|
8
|
+
service: import("../kx").Service | undefined;
|
|
9
|
+
jobs: (import("@pulumi/kubernetes/batch/v1/cronJob").CronJob | import("../kx").Job)[] | undefined;
|
|
10
|
+
};
|
|
11
|
+
host: import("@pulumi/pulumi").Output<string>;
|
|
12
|
+
username: string;
|
|
13
|
+
password: import("@pulumi/pulumi").Input<string>;
|
|
14
|
+
};
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Random_1 = require("../../Core/Random");
|
|
4
|
+
const CustomHelper_1 = require("../../KeyVault/CustomHelper");
|
|
5
|
+
const Deployment_1 = require("../Deployment");
|
|
6
|
+
const Storage_1 = require("../Storage");
|
|
7
|
+
const pulumi_1 = require("@pulumi/pulumi");
|
|
8
|
+
exports.default = ({ name = 'sql', namespace, databaseNames, vaultInfo, auth, storageClassName, provider, }) => {
|
|
9
|
+
const password = auth?.rootPass
|
|
10
|
+
? auth.rootPass
|
|
11
|
+
: (0, Random_1.randomPassword)({ name, vaultInfo }).result;
|
|
12
|
+
//Create Storage Container and add Secret to Namespace
|
|
13
|
+
const claim = (0, Storage_1.createPVCForStorageClass)({
|
|
14
|
+
name,
|
|
15
|
+
namespace,
|
|
16
|
+
provider,
|
|
17
|
+
storageClassName,
|
|
18
|
+
});
|
|
19
|
+
const sql = (0, Deployment_1.default)({
|
|
20
|
+
name,
|
|
21
|
+
namespace,
|
|
22
|
+
provider,
|
|
23
|
+
configMap: { MSSQL_PID: 'Developer', ACCEPT_EULA: 'Y' },
|
|
24
|
+
secrets: { SA_PASSWORD: password },
|
|
25
|
+
podConfig: {
|
|
26
|
+
ports: { tcp: 1433 },
|
|
27
|
+
image: 'mcr.microsoft.com/mssql/server:2019-latest',
|
|
28
|
+
securityContext: { fsGroup: 10001 },
|
|
29
|
+
podSecurityContext: {
|
|
30
|
+
allowPrivilegeEscalation: true,
|
|
31
|
+
readOnlyRootFilesystem: false,
|
|
32
|
+
privileged: true,
|
|
33
|
+
},
|
|
34
|
+
resources: {
|
|
35
|
+
requests: { cpu: '1m', memory: '1Gi' },
|
|
36
|
+
limits: { cpu: '500m', memory: '2Gi' },
|
|
37
|
+
},
|
|
38
|
+
volumes: [
|
|
39
|
+
{
|
|
40
|
+
name: 'sqldbs',
|
|
41
|
+
mountPath: '/var/opt/mssql',
|
|
42
|
+
persistentVolumeClaim: claim.metadata.name,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
deploymentConfig: { replicas: 1 },
|
|
47
|
+
serviceConfig: { usePodPort: true },
|
|
48
|
+
});
|
|
49
|
+
const rs = {
|
|
50
|
+
sql,
|
|
51
|
+
host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
|
|
52
|
+
username: 'sa',
|
|
53
|
+
password: password,
|
|
54
|
+
};
|
|
55
|
+
if (databaseNames) {
|
|
56
|
+
databaseNames.map((d) => {
|
|
57
|
+
//Create DataBase in the Server
|
|
58
|
+
// new MsSqlDatabaseResource(dbName, {
|
|
59
|
+
// databaseName: dbName,
|
|
60
|
+
// server: rs.host,
|
|
61
|
+
// userName: rs.username,
|
|
62
|
+
// password: rs.password,
|
|
63
|
+
// });
|
|
64
|
+
if (vaultInfo) {
|
|
65
|
+
//Add Connection String to Key Vault
|
|
66
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
67
|
+
name: d,
|
|
68
|
+
vaultInfo,
|
|
69
|
+
value: (0, pulumi_1.interpolate) `Data Source=${rs.host};Initial Catalog=${d};User Id=${rs.username};Password=${rs.password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=120;`,
|
|
70
|
+
contentType: name,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return rs;
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0t1YmVYL0RhdGFiYXNlcy9TcWxTZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw4Q0FBbUQ7QUFDbkQsOERBQThEO0FBQzlELDhDQUF1QztBQUN2Qyx3Q0FBc0Q7QUFDdEQsMkNBQTZDO0FBTTdDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsS0FBSyxFQUNaLFNBQVMsRUFDVCxhQUFhLEVBQ2IsU0FBUyxFQUNULElBQUksRUFDSixnQkFBZ0IsRUFDaEIsUUFBUSxHQUNGLEVBQUUsRUFBRTtJQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRO1FBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNmLENBQUMsQ0FBQyxJQUFBLHVCQUFjLEVBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFL0Msc0RBQXNEO0lBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUEsa0NBQXdCLEVBQUM7UUFDckMsSUFBSTtRQUNKLFNBQVM7UUFDVCxRQUFRO1FBQ1IsZ0JBQWdCO0tBQ2pCLENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRyxHQUFHLElBQUEsb0JBQVUsRUFBQztRQUNyQixJQUFJO1FBQ0osU0FBUztRQUNULFFBQVE7UUFFUixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDdkQsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtRQUVsQyxTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3BCLEtBQUssRUFBRSw0Q0FBNEM7WUFFbkQsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUNuQyxrQkFBa0IsRUFBRTtnQkFDbEIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsc0JBQXNCLEVBQUUsS0FBSztnQkFDN0IsVUFBVSxFQUFFLElBQUk7YUFDakI7WUFFRCxTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7YUFDdkM7WUFFRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsU0FBUyxFQUFFLGdCQUFnQjtvQkFDM0IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2lCQUMzQzthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUU7UUFDakMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtLQUNwQyxDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsR0FBRztRQUNULEdBQUc7UUFDSCxJQUFJLEVBQUUsSUFBQSxvQkFBVyxFQUFBLEdBQUcsSUFBSSxJQUFJLFNBQVMsb0JBQW9CO1FBQ3pELFFBQVEsRUFBRSxJQUFJO1FBQ2QsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQztJQUVGLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RCLCtCQUErQjtZQUMvQixzQ0FBc0M7WUFDdEMsMEJBQTBCO1lBQzFCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsMkJBQTJCO1lBQzNCLE1BQU07WUFFTixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLG9DQUFvQztnQkFDcEMsSUFBQSw4QkFBZSxFQUFDO29CQUNkLElBQUksRUFBRSxDQUFDO29CQUNQLFNBQVM7b0JBQ1QsS0FBSyxFQUFFLElBQUEsb0JBQVcsRUFBQSxlQUFlLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsYUFBYSxFQUFFLENBQUMsUUFBUSxrR0FBa0c7b0JBQzlNLFdBQVcsRUFBRSxJQUFJO2lCQUNsQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import { Provider } from '@pulumi/kubernetes';
|
|
3
|
+
import * as kx from '../kx';
|
|
4
|
+
export interface PodAutoScaleProps {
|
|
5
|
+
name: string;
|
|
6
|
+
maxReplicas: number;
|
|
7
|
+
minReplicas?: number;
|
|
8
|
+
averageUtilization?: number;
|
|
9
|
+
stabilizationMinutes?: number;
|
|
10
|
+
deployment: kx.Deployment | k8s.apps.v1.Deployment;
|
|
11
|
+
provider: Provider;
|
|
12
|
+
}
|
|
13
|
+
export declare const PodAutoScale: ({ name, maxReplicas, minReplicas, averageUtilization, stabilizationMinutes, deployment, provider, }: PodAutoScaleProps) => import("@pulumi/kubernetes/autoscaling/v2/horizontalPodAutoscaler").HorizontalPodAutoscaler;
|
|
14
|
+
export default PodAutoScale;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PodAutoScale = void 0;
|
|
4
|
+
const k8s = require("@pulumi/kubernetes");
|
|
5
|
+
const PodAutoScale = ({ name, maxReplicas = 3, minReplicas = 1, averageUtilization = 80, stabilizationMinutes = 30, deployment, provider, }) => {
|
|
6
|
+
name = `${name}-HA`.toLowerCase();
|
|
7
|
+
return new k8s.autoscaling.v2.HorizontalPodAutoscaler(name, {
|
|
8
|
+
metadata: {
|
|
9
|
+
name,
|
|
10
|
+
namespace: deployment.metadata.namespace,
|
|
11
|
+
},
|
|
12
|
+
spec: {
|
|
13
|
+
scaleTargetRef: {
|
|
14
|
+
kind: 'Deployment',
|
|
15
|
+
apiVersion: 'apps/v1',
|
|
16
|
+
name: deployment.metadata.name,
|
|
17
|
+
},
|
|
18
|
+
maxReplicas,
|
|
19
|
+
minReplicas,
|
|
20
|
+
metrics: [
|
|
21
|
+
{
|
|
22
|
+
type: 'Resource',
|
|
23
|
+
resource: {
|
|
24
|
+
name: 'cpu',
|
|
25
|
+
target: { type: 'Utilization', averageUtilization },
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
type: 'Resource',
|
|
30
|
+
resource: {
|
|
31
|
+
name: 'memory',
|
|
32
|
+
target: { type: 'Utilization', averageUtilization },
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
behavior: {
|
|
37
|
+
scaleDown: {
|
|
38
|
+
stabilizationWindowSeconds: stabilizationMinutes * 60,
|
|
39
|
+
policies: [{ type: 'Pods', value: 1, periodSeconds: 15 * 60 }],
|
|
40
|
+
},
|
|
41
|
+
scaleUp: {
|
|
42
|
+
stabilizationWindowSeconds: stabilizationMinutes * 60,
|
|
43
|
+
policies: [{ type: 'Pods', value: 1, periodSeconds: 15 * 60 }],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
}, { provider });
|
|
48
|
+
};
|
|
49
|
+
exports.PodAutoScale = PodAutoScale;
|
|
50
|
+
exports.default = exports.PodAutoScale;
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9kQXV0b3NjYWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9EZXBsb3ltZW50L1BvZEF1dG9zY2FsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTBDO0FBY25DLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFDM0IsSUFBSSxFQUNKLFdBQVcsR0FBRyxDQUFDLEVBQ2YsV0FBVyxHQUFHLENBQUMsRUFDZixrQkFBa0IsR0FBRyxFQUFFLEVBQ3ZCLG9CQUFvQixHQUFHLEVBQUUsRUFDekIsVUFBVSxFQUNWLFFBQVEsR0FDVSxFQUFFLEVBQUU7SUFDdEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUNuRCxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUztTQUN6QztRQUNELElBQUksRUFBRTtZQUNKLGNBQWMsRUFBRTtnQkFDZCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUk7YUFDL0I7WUFFRCxXQUFXO1lBQ1gsV0FBVztZQUVYLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxLQUFLO3dCQUNYLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUU7cUJBQ3BEO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRTtxQkFDcEQ7aUJBQ0Y7YUFDRjtZQUVELFFBQVEsRUFBRTtnQkFDUixTQUFTLEVBQUU7b0JBQ1QsMEJBQTBCLEVBQUUsb0JBQW9CLEdBQUcsRUFBRTtvQkFDckQsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztpQkFDL0Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDBCQUEwQixFQUFFLG9CQUFvQixHQUFHLEVBQUU7b0JBQ3JELFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7aUJBQy9EO2FBQ0Y7U0FDRjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBMURXLFFBQUEsWUFBWSxnQkEwRHZCO0FBRUYsa0JBQWUsb0JBQVksQ0FBQyJ9
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import * as kx from '../kx';
|
|
3
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
4
|
+
import { Input, Resource } from '@pulumi/pulumi';
|
|
5
|
+
import { IngressProps } from '../Ingress/type';
|
|
6
|
+
import { input as inputs } from '@pulumi/kubernetes/types';
|
|
7
|
+
import { PodAutoScaleProps } from './PodAutoscaler';
|
|
8
|
+
type restartPolicies = 'Always' | 'OnFailure' | 'Never';
|
|
9
|
+
export declare const defaultResources: {
|
|
10
|
+
limits: {
|
|
11
|
+
memory: string;
|
|
12
|
+
cpu: string;
|
|
13
|
+
};
|
|
14
|
+
requests: {
|
|
15
|
+
memory: string;
|
|
16
|
+
cpu: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
export declare const virtualHostConfig: {
|
|
20
|
+
nodeSelector: {
|
|
21
|
+
'kubernetes.io/role': string;
|
|
22
|
+
'beta.kubernetes.io/os': string;
|
|
23
|
+
type: string;
|
|
24
|
+
};
|
|
25
|
+
tolerations: {
|
|
26
|
+
effect: string;
|
|
27
|
+
key: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}[];
|
|
30
|
+
};
|
|
31
|
+
interface PodConfigProps {
|
|
32
|
+
ports: kx.types.PortMap;
|
|
33
|
+
image: Input<string>;
|
|
34
|
+
imagePullSecret?: string;
|
|
35
|
+
imagePullPolicy?: 'Always' | 'Never' | 'IfNotPresent';
|
|
36
|
+
resources?: Input<k8s.types.input.core.v1.ResourceRequirements> | false;
|
|
37
|
+
command?: string[];
|
|
38
|
+
volumes?: Array<{
|
|
39
|
+
name: string;
|
|
40
|
+
mountPath: string;
|
|
41
|
+
emptyDir?: boolean;
|
|
42
|
+
subPath?: string;
|
|
43
|
+
hostPath?: string;
|
|
44
|
+
readOnly?: boolean;
|
|
45
|
+
/** The secret name */
|
|
46
|
+
secretName?: Input<string>;
|
|
47
|
+
configMapName?: Input<string>;
|
|
48
|
+
/** The volume claims name */
|
|
49
|
+
persistentVolumeClaim?: Input<string>;
|
|
50
|
+
type?: 'azureFile';
|
|
51
|
+
}>;
|
|
52
|
+
podSecurityContext?: Input<k8s.types.input.core.v1.SecurityContext>;
|
|
53
|
+
securityContext?: Input<k8s.types.input.core.v1.PodSecurityContext>;
|
|
54
|
+
tolerations?: pulumi.Input<inputs.core.v1.Toleration>[];
|
|
55
|
+
nodeSelector?: pulumi.Input<{
|
|
56
|
+
[key: string]: pulumi.Input<string>;
|
|
57
|
+
}>;
|
|
58
|
+
probes?: {
|
|
59
|
+
liveness?: {
|
|
60
|
+
httpGet: string;
|
|
61
|
+
port: number;
|
|
62
|
+
initialDelaySeconds?: number;
|
|
63
|
+
periodSeconds?: number;
|
|
64
|
+
timeoutSeconds?: number;
|
|
65
|
+
failureThreshold?: number;
|
|
66
|
+
};
|
|
67
|
+
lifecycle?: {
|
|
68
|
+
postStart?: pulumi.Input<string>[];
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export type DeploymentIngress = Omit<IngressProps, 'name' | 'internalIngress' | 'service' | 'services' | 'provider' | 'dependsOn'>;
|
|
73
|
+
export type IngressTypes = 'nginx' | 'traefik';
|
|
74
|
+
interface Props {
|
|
75
|
+
name: string;
|
|
76
|
+
namespace: Input<string>;
|
|
77
|
+
podConfig: PodConfigProps;
|
|
78
|
+
deploymentConfig?: {
|
|
79
|
+
args?: Input<string>[];
|
|
80
|
+
replicas?: number;
|
|
81
|
+
/** Run App and Jobs using Virtual Node **/
|
|
82
|
+
useVirtualHost?: boolean;
|
|
83
|
+
/** Enforce resources to be redeployed everytime */
|
|
84
|
+
enforceReDeployment?: boolean;
|
|
85
|
+
} | false;
|
|
86
|
+
serviceConfig?: {
|
|
87
|
+
usePodPort?: boolean;
|
|
88
|
+
useClusterIP?: boolean;
|
|
89
|
+
} | false;
|
|
90
|
+
jobConfigs?: Array<{
|
|
91
|
+
name: string;
|
|
92
|
+
/** Run Jobs using Virtual Node **/
|
|
93
|
+
useVirtualHost?: boolean;
|
|
94
|
+
/**If schedule provided the cron job will be created instead just a job*/
|
|
95
|
+
cron?: {
|
|
96
|
+
schedule: string;
|
|
97
|
+
failedJobsHistoryLimit?: number;
|
|
98
|
+
successfulJobsHistoryLimit?: number;
|
|
99
|
+
concurrencyPolicy: 'Forbid' | 'Allow' | 'Replace';
|
|
100
|
+
};
|
|
101
|
+
args?: Input<string>[];
|
|
102
|
+
restartPolicy?: restartPolicies;
|
|
103
|
+
ttlSecondsAfterFinished?: number;
|
|
104
|
+
}>;
|
|
105
|
+
ingressConfig?: {
|
|
106
|
+
type: IngressTypes;
|
|
107
|
+
} & DeploymentIngress;
|
|
108
|
+
configMap?: Input<{
|
|
109
|
+
[key: string]: Input<string>;
|
|
110
|
+
}>;
|
|
111
|
+
secrets?: Input<{
|
|
112
|
+
[key: string]: Input<string>;
|
|
113
|
+
}>;
|
|
114
|
+
mapConfigToVolume?: {
|
|
115
|
+
name: string;
|
|
116
|
+
path: string;
|
|
117
|
+
subPath?: string;
|
|
118
|
+
};
|
|
119
|
+
mapSecretsToVolume?: {
|
|
120
|
+
name: string;
|
|
121
|
+
path: string;
|
|
122
|
+
subPath?: string;
|
|
123
|
+
};
|
|
124
|
+
/**
|
|
125
|
+
* Enable high availability for the deployment. Multi instance of the pod will be scale up and down based on the usage.
|
|
126
|
+
*/
|
|
127
|
+
enableHA?: Omit<PodAutoScaleProps, 'provider' | 'deployment'>;
|
|
128
|
+
provider: k8s.Provider;
|
|
129
|
+
dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
|
|
130
|
+
}
|
|
131
|
+
declare const _default: ({ name, namespace, configMap, secrets, mapSecretsToVolume, mapConfigToVolume, podConfig, deploymentConfig, serviceConfig, jobConfigs, ingressConfig, enableHA, provider, dependsOn, }: Props) => {
|
|
132
|
+
deployment: kx.Deployment | undefined;
|
|
133
|
+
service: kx.Service | undefined;
|
|
134
|
+
jobs: (import("@pulumi/kubernetes/batch/v1/cronJob").CronJob | kx.Job)[] | undefined;
|
|
135
|
+
};
|
|
136
|
+
export default _default;
|