@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,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const k8s = require("@pulumi/kubernetes");
|
|
4
|
+
const NginxIngress_1 = require("./NginxIngress");
|
|
5
|
+
const Helpers_1 = require("../../Common/Helpers");
|
|
6
|
+
const CertHelper_1 = require("../CertHelper");
|
|
7
|
+
exports.default = ({ name, namespace, host, certManagerIssuer = true, cors, proxyUrl, proxyTlsSecretName, ingressClass, port, dependsOn, provider, ...others }) => {
|
|
8
|
+
if (!port)
|
|
9
|
+
port = proxyUrl.includes('http:') ? 80 : 443;
|
|
10
|
+
const service = new k8s.core.v1.Service(name, {
|
|
11
|
+
metadata: {
|
|
12
|
+
name,
|
|
13
|
+
namespace,
|
|
14
|
+
labels: { app: name },
|
|
15
|
+
},
|
|
16
|
+
spec: {
|
|
17
|
+
type: 'ExternalName',
|
|
18
|
+
externalName: proxyUrl.replace('https://', '').replace('http://', ''),
|
|
19
|
+
//externalIPs: externalIPs || undefined, //because of this issue https://github.com/coredns/coredns/issues/2324#issuecomment-484005202
|
|
20
|
+
ports: [{ port }],
|
|
21
|
+
},
|
|
22
|
+
}, { dependsOn, provider });
|
|
23
|
+
return (0, NginxIngress_1.default)({
|
|
24
|
+
name,
|
|
25
|
+
className: ingressClass,
|
|
26
|
+
certManagerIssuer,
|
|
27
|
+
hostNames: [host],
|
|
28
|
+
tlsSecretName: (0, CertHelper_1.getTlsName)((0, Helpers_1.getRootDomainFromUrl)(host), certManagerIssuer),
|
|
29
|
+
responseHeaders: { 'x-backend-service-name': name },
|
|
30
|
+
cors: cors && { origins: cors },
|
|
31
|
+
proxy: {
|
|
32
|
+
backendProtocol: port === 80 ? 'HTTP' : 'HTTPS',
|
|
33
|
+
backendUrl: proxyUrl,
|
|
34
|
+
sslVerify: false,
|
|
35
|
+
tlsSecretName: proxyTlsSecretName,
|
|
36
|
+
},
|
|
37
|
+
service,
|
|
38
|
+
...others,
|
|
39
|
+
dependsOn,
|
|
40
|
+
provider,
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmdpbnhQcm94eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9JbmdyZXNzL05naW54UHJveHkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwQ0FBMEM7QUFFMUMsaURBQTBDO0FBQzFDLGtEQUE0RDtBQUU1RCw4Q0FBMkM7QUF1QjNDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEVBQ0osU0FBUyxFQUNULElBQUksRUFDSixpQkFBaUIsR0FBRyxJQUFJLEVBQ3hCLElBQUksRUFDSixRQUFRLEVBQ1Isa0JBQWtCLEVBQ2xCLFlBQVksRUFDWixJQUFJLEVBRUosU0FBUyxFQUNULFFBQVEsRUFDUixHQUFHLE1BQU0sRUFDSCxFQUFFLEVBQUU7SUFDVixJQUFJLENBQUMsSUFBSTtRQUFFLElBQUksR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUV4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FDckMsSUFBSSxFQUNKO1FBQ0UsUUFBUSxFQUFFO1lBQ1IsSUFBSTtZQUNKLFNBQVM7WUFDVCxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1NBQ3RCO1FBQ0QsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGNBQWM7WUFDcEIsWUFBWSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDO1lBQ3JFLHNJQUFzSTtZQUN0SSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2xCO0tBQ0YsRUFDRCxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsQ0FDeEIsQ0FBQztJQUVGLE9BQU8sSUFBQSxzQkFBWSxFQUFDO1FBQ2xCLElBQUk7UUFFSixTQUFTLEVBQUUsWUFBWTtRQUN2QixpQkFBaUI7UUFDakIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDO1FBRWpCLGFBQWEsRUFBRSxJQUFBLHVCQUFVLEVBQUMsSUFBQSw4QkFBb0IsRUFBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsQ0FBQztRQUV4RSxlQUFlLEVBQUUsRUFBRSx3QkFBd0IsRUFBRSxJQUFJLEVBQUU7UUFDbkQsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDL0IsS0FBSyxFQUFFO1lBQ0wsZUFBZSxFQUFFLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztZQUMvQyxVQUFVLEVBQUUsUUFBUTtZQUNwQixTQUFTLEVBQUUsS0FBSztZQUNoQixhQUFhLEVBQUUsa0JBQWtCO1NBQ2xDO1FBRUQsT0FBTztRQUVQLEdBQUcsTUFBTTtRQUNULFNBQVM7UUFDVCxRQUFRO0tBQ1QsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import { DefaultK8sArgs } from '../../types';
|
|
3
|
+
interface CustomHeaderProps extends Omit<DefaultK8sArgs, 'namespace'> {
|
|
4
|
+
headers?: {
|
|
5
|
+
[key: string]: any;
|
|
6
|
+
};
|
|
7
|
+
customRequestHeaders?: {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
};
|
|
10
|
+
customResponseHeaders?: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
declare const _default: ({ name, headers, customRequestHeaders, customResponseHeaders, ...others }: CustomHeaderProps) => k8s.apiextensions.CustomResource;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const k8s = require("@pulumi/kubernetes");
|
|
4
|
+
exports.default = ({ name = 'traefik', headers, customRequestHeaders, customResponseHeaders, ...others }) => new k8s.apiextensions.CustomResource(name, {
|
|
5
|
+
apiVersion: 'traefik.containo.us/v1alpha1',
|
|
6
|
+
kind: 'Middleware',
|
|
7
|
+
metadata: {
|
|
8
|
+
name,
|
|
9
|
+
annotations: { 'pulumi.com/skipAwait': 'true' },
|
|
10
|
+
},
|
|
11
|
+
spec: {
|
|
12
|
+
headers: { ...headers, customRequestHeaders, customResponseHeaders },
|
|
13
|
+
},
|
|
14
|
+
}, { ...others });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3VzdG9tSGVhZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0t1YmVYL0luZ3Jlc3MvVHJhZWZpa0luZ3Jlc3MvQ3VzdG9tSGVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMENBQTBDO0FBUzFDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsU0FBUyxFQUNoQixPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixHQUFHLE1BQU0sRUFDUyxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FDbEMsSUFBSSxFQUNKO0lBQ0UsVUFBVSxFQUFFLDhCQUE4QjtJQUMxQyxJQUFJLEVBQUUsWUFBWTtJQUNsQixRQUFRLEVBQUU7UUFDUixJQUFJO1FBQ0osV0FBVyxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxFQUFFO0tBQ2hEO0lBQ0QsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUU7S0FDckU7Q0FDRixFQUNELEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FDZCxDQUFDIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import { DefaultK8sArgs } from '../../types';
|
|
3
|
+
import { IngressProps } from '../type';
|
|
4
|
+
export interface TraefikTcpIngressProps extends DefaultK8sArgs {
|
|
5
|
+
port: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const TcpIngress: ({ name, namespace, port, ...others }: TraefikTcpIngressProps) => k8s.apiextensions.CustomResource;
|
|
8
|
+
export interface TraefikIngressProps extends IngressProps {
|
|
9
|
+
}
|
|
10
|
+
declare const _default: ({ name, hostNames, allowHttp, tlsSecretName, service, services, certManagerIssuer, cors, ...others }: TraefikIngressProps) => import("@pulumi/kubernetes/networking/v1/ingress").Ingress;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TcpIngress = void 0;
|
|
4
|
+
const k8s = require("@pulumi/kubernetes");
|
|
5
|
+
const TcpIngress = ({ name = 'traefikTcp', namespace, port, ...others }) => {
|
|
6
|
+
return new k8s.apiextensions.CustomResource(name, {
|
|
7
|
+
apiVersion: 'traefik.containo.us/v1alpha1',
|
|
8
|
+
kind: 'IngressRouteTCP',
|
|
9
|
+
metadata: {
|
|
10
|
+
name,
|
|
11
|
+
namespace,
|
|
12
|
+
annotations: { 'pulumi.com/skipAwait': 'true' },
|
|
13
|
+
},
|
|
14
|
+
spec: {
|
|
15
|
+
entryPoints: [name],
|
|
16
|
+
routes: [
|
|
17
|
+
{ match: 'HostSNI(`*`)', kind: 'Rule', services: [{ name, port }] },
|
|
18
|
+
],
|
|
19
|
+
},
|
|
20
|
+
}, { ...others });
|
|
21
|
+
};
|
|
22
|
+
exports.TcpIngress = TcpIngress;
|
|
23
|
+
exports.default = ({ name = 'traefik', hostNames, allowHttp, tlsSecretName, service, services, certManagerIssuer, cors, ...others }) => {
|
|
24
|
+
const annotations = {
|
|
25
|
+
'traefik.ingress.kubernetes.io/router.entrypoints': 'websecure,web',
|
|
26
|
+
};
|
|
27
|
+
if (!allowHttp) {
|
|
28
|
+
annotations['ttraefik.ingress.kubernetes.io/router.tls'] = 'true';
|
|
29
|
+
}
|
|
30
|
+
if (certManagerIssuer) {
|
|
31
|
+
if (typeof certManagerIssuer === 'string')
|
|
32
|
+
annotations['cert-manager.io/cluster-issuer'] = certManagerIssuer;
|
|
33
|
+
else
|
|
34
|
+
annotations['kubernetes.io/tls-acme'] = 'true';
|
|
35
|
+
}
|
|
36
|
+
if (cors) {
|
|
37
|
+
const origin = cors.origins.join(',');
|
|
38
|
+
const header = cors.headers
|
|
39
|
+
? cors.headers.join(',')
|
|
40
|
+
: 'GET,POST,PUT,OPTIONS,DELETE';
|
|
41
|
+
annotations['traefik.ingress.kubernetes.io/custom-response-headers'] = `Access-Control-Allow-Origin:${origin}||Access-Control-Allow-Methods:${header}||Access-Control-Allow-Headers:DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range||Access-Control-Expose-Headers:Content-Length,Content-Range`;
|
|
42
|
+
}
|
|
43
|
+
const servicePaths = services
|
|
44
|
+
? services.paths.map((s) => ({
|
|
45
|
+
backend: {
|
|
46
|
+
service: {
|
|
47
|
+
name: s.metadata.name,
|
|
48
|
+
port: {
|
|
49
|
+
number: s.spec.ports[0].port,
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
path: `${s.path}/(.*)`,
|
|
54
|
+
pathType: 'Prefix',
|
|
55
|
+
}))
|
|
56
|
+
: [
|
|
57
|
+
{
|
|
58
|
+
backend: {
|
|
59
|
+
service: {
|
|
60
|
+
name: service.metadata.name,
|
|
61
|
+
port: {
|
|
62
|
+
number: service.spec.ports[0].port,
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
path: '/',
|
|
67
|
+
pathType: 'ImplementationSpecific',
|
|
68
|
+
},
|
|
69
|
+
];
|
|
70
|
+
return new k8s.networking.v1.Ingress(name, {
|
|
71
|
+
metadata: {
|
|
72
|
+
name,
|
|
73
|
+
namespace: services?.metadata.namespace || service?.metadata.namespace,
|
|
74
|
+
labels: services?.metadata.labels || service?.metadata.labels,
|
|
75
|
+
annotations,
|
|
76
|
+
},
|
|
77
|
+
spec: {
|
|
78
|
+
rules: hostNames.map((hostName) => ({
|
|
79
|
+
host: hostName,
|
|
80
|
+
http: {
|
|
81
|
+
paths: servicePaths,
|
|
82
|
+
},
|
|
83
|
+
})),
|
|
84
|
+
tls: allowHttp
|
|
85
|
+
? undefined
|
|
86
|
+
: [
|
|
87
|
+
{
|
|
88
|
+
hosts: hostNames,
|
|
89
|
+
secretName: tlsSecretName,
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
}, { ...others });
|
|
94
|
+
};
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9UcmFlZmlrSW5ncmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMEM7QUFRbkMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxFQUN6QixJQUFJLEdBQUcsWUFBWSxFQUNuQixTQUFTLEVBQ1QsSUFBSSxFQUNKLEdBQUcsTUFBTSxFQUNjLEVBQUUsRUFBRTtJQUMzQixPQUFPLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQ3pDLElBQUksRUFDSjtRQUNFLFVBQVUsRUFBRSw4QkFBOEI7UUFDMUMsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULFdBQVcsRUFBRSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRTtTQUNoRDtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztZQUNuQixNQUFNLEVBQUU7Z0JBQ04sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTthQUNwRTtTQUNGO0tBQ0YsRUFDRCxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQ2QsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXpCVyxRQUFBLFVBQVUsY0F5QnJCO0FBSUYsa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxTQUFTLEVBQ2hCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLElBQUksRUFDSixHQUFHLE1BQU0sRUFDVyxFQUFFLEVBQUU7SUFDeEIsTUFBTSxXQUFXLEdBQUc7UUFDbEIsa0RBQWtELEVBQUUsZUFBZTtLQUM3RCxDQUFDO0lBRVQsSUFBSSxDQUFDLFNB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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TraefikIngress = exports.AppGatewayIngress = exports.NginxProxy = exports.NginxIngress = void 0;
|
|
4
|
+
const NginxIngress_1 = require("./NginxIngress");
|
|
5
|
+
exports.NginxIngress = NginxIngress_1.default;
|
|
6
|
+
const TraefikIngress_1 = require("./TraefikIngress");
|
|
7
|
+
exports.TraefikIngress = TraefikIngress_1.default;
|
|
8
|
+
const NginxIngress_2 = require("./NginxIngress");
|
|
9
|
+
exports.NginxProxy = NginxIngress_2.default;
|
|
10
|
+
const AppGatewayIngress_1 = require("./AppGatewayIngress");
|
|
11
|
+
exports.AppGatewayIngress = AppGatewayIngress_1.default;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBMEM7QUFLakMsdUJBTEYsc0JBQVksQ0FLRTtBQUpyQixxREFBOEM7QUFJUSx5QkFKL0Msd0JBQWMsQ0FJK0M7QUFIcEUsaURBQXdDO0FBR2pCLHFCQUhoQixzQkFBVSxDQUdnQjtBQUZqQywyREFBb0Q7QUFFakIsNEJBRjVCLDJCQUFpQixDQUU0QiJ9
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Input, Resource } from '@pulumi/pulumi';
|
|
2
|
+
import * as kx from '../kx';
|
|
3
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
4
|
+
import { defaultResponseHeaders } from './Conts';
|
|
5
|
+
export interface ServicePort {
|
|
6
|
+
appProtocol?: Input<string>;
|
|
7
|
+
name?: Input<string>;
|
|
8
|
+
nodePort?: Input<number>;
|
|
9
|
+
port?: Input<number>;
|
|
10
|
+
protocol?: Input<string>;
|
|
11
|
+
targetPort?: Input<number | string>;
|
|
12
|
+
}
|
|
13
|
+
export type IngressClassName = 'public' | 'private' | 'nginx';
|
|
14
|
+
export type IngressCanary = {
|
|
15
|
+
headerKey?: Input<string>;
|
|
16
|
+
headerValue?: Input<string>;
|
|
17
|
+
headerPattern?: Input<string>;
|
|
18
|
+
};
|
|
19
|
+
export type CertManagerIssuerTypes = boolean | 'letsencrypt-staging' | 'letsencrypt-prod';
|
|
20
|
+
type SimpleServiceType = {
|
|
21
|
+
metadata: {
|
|
22
|
+
name: Input<string>;
|
|
23
|
+
namespace: Input<string>;
|
|
24
|
+
labels?: Input<{
|
|
25
|
+
[key: string]: Input<string>;
|
|
26
|
+
}>;
|
|
27
|
+
};
|
|
28
|
+
spec: {
|
|
29
|
+
ports: Array<ServicePort>;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
type ServiceType = kx.Service | k8s.core.v1.Service | SimpleServiceType;
|
|
33
|
+
interface ServicesType extends SimpleServiceType {
|
|
34
|
+
path: string;
|
|
35
|
+
}
|
|
36
|
+
export interface IngressProps {
|
|
37
|
+
name: string;
|
|
38
|
+
className?: IngressClassName;
|
|
39
|
+
certManagerIssuer?: CertManagerIssuerTypes;
|
|
40
|
+
hostNames: Input<string>[];
|
|
41
|
+
allowHttp?: boolean;
|
|
42
|
+
internalIngress?: boolean;
|
|
43
|
+
tlsSecretName?: Input<string>;
|
|
44
|
+
maxUploadSizeMb?: number;
|
|
45
|
+
responseHeaders?: Partial<typeof defaultResponseHeaders & {
|
|
46
|
+
[key: string]: string;
|
|
47
|
+
}> | boolean;
|
|
48
|
+
whitelistIps?: Array<Input<string>>;
|
|
49
|
+
enableModSecurity?: boolean;
|
|
50
|
+
cors?: {
|
|
51
|
+
origins: string[];
|
|
52
|
+
headers?: string[];
|
|
53
|
+
};
|
|
54
|
+
canary?: IngressCanary;
|
|
55
|
+
proxy?: {
|
|
56
|
+
backendProtocol?: 'HTTP' | 'HTTPS' | 'GRPC' | 'GRPCS' | 'AJP' | 'FCGI';
|
|
57
|
+
backendUrl?: string;
|
|
58
|
+
sslVerify?: boolean;
|
|
59
|
+
tlsSecretName?: Input<string>;
|
|
60
|
+
};
|
|
61
|
+
auth?: {
|
|
62
|
+
enableClientTls?: boolean;
|
|
63
|
+
alwaysRequireCert?: boolean;
|
|
64
|
+
caSecret?: string;
|
|
65
|
+
upstreamHeaderKey?: string;
|
|
66
|
+
errorPage?: string;
|
|
67
|
+
};
|
|
68
|
+
pathType?: 'Prefix' | 'ImplementationSpecific' | string;
|
|
69
|
+
service?: ServiceType;
|
|
70
|
+
services?: {
|
|
71
|
+
metadata: {
|
|
72
|
+
namespace: Input<string>;
|
|
73
|
+
labels?: Input<{
|
|
74
|
+
[key: string]: Input<string>;
|
|
75
|
+
}>;
|
|
76
|
+
};
|
|
77
|
+
paths: ServicesType[];
|
|
78
|
+
};
|
|
79
|
+
provider: k8s.Provider;
|
|
80
|
+
dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
|
|
81
|
+
}
|
|
82
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9JbmdyZXNzL3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DefaultK8sArgs } from '../types';
|
|
2
|
+
interface Props extends Omit<DefaultK8sArgs, 'provider' | 'namespace'> {
|
|
3
|
+
namespace?: string;
|
|
4
|
+
ignoreChanges?: boolean;
|
|
5
|
+
kubeconfig: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const createProvider: ({ name, ignoreChanges, ...others }: Props) => import("@pulumi/kubernetes/provider").Provider;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createProvider = void 0;
|
|
4
|
+
const k8s = require("@pulumi/kubernetes");
|
|
5
|
+
const Naming_1 = require("../../Common/Naming");
|
|
6
|
+
const createProvider = ({ name = 'ks-provider', ignoreChanges, ...others }) => {
|
|
7
|
+
name = (0, Naming_1.getK8sProviderName)(name);
|
|
8
|
+
return new k8s.Provider(name, {
|
|
9
|
+
...others,
|
|
10
|
+
suppressDeprecationWarnings: true,
|
|
11
|
+
suppressHelmHookWarnings: true,
|
|
12
|
+
}, { ignoreChanges: ignoreChanges ? ['kubeconfig'] : undefined });
|
|
13
|
+
};
|
|
14
|
+
exports.createProvider = createProvider;
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvUHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDBDQUEwQztBQUMxQyxnREFBeUQ7QUFRbEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxFQUM3QixJQUFJLEdBQUcsYUFBYSxFQUNwQixhQUFhLEVBQ2IsR0FBRyxNQUFNLEVBQ0gsRUFBRSxFQUFFO0lBQ1YsSUFBSSxHQUFHLElBQUEsMkJBQWtCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQ3JCLElBQUksRUFDSjtRQUNFLEdBQUcsTUFBTTtRQUNULDJCQUEyQixFQUFFLElBQUk7UUFDakMsd0JBQXdCLEVBQUUsSUFBSTtLQUMvQixFQUNELEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQzlELENBQUM7QUFDSixDQUFDLENBQUM7QUFmVyxRQUFBLGNBQWMsa0JBZXpCIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { DefaultK8sArgs } from '../../types';
|
|
2
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
3
|
+
import { Input } from '@pulumi/pulumi';
|
|
4
|
+
type BackupType = {
|
|
5
|
+
azureStorage?: {
|
|
6
|
+
accountName: Input<string>;
|
|
7
|
+
accountKey: Input<string>;
|
|
8
|
+
containerName: Input<string>;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export interface LonghornProps extends Omit<DefaultK8sArgs, 'name' | 'namespace'> {
|
|
12
|
+
backup?: BackupType;
|
|
13
|
+
}
|
|
14
|
+
declare const _default: ({ resources, backup, ...others }: LonghornProps) => k8s.helm.v3.Chart;
|
|
15
|
+
export default _default;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const k8s = require("@pulumi/kubernetes");
|
|
4
|
+
const Namespace_1 = require("../../Core/Namespace");
|
|
5
|
+
const pulumi_1 = require("@pulumi/pulumi");
|
|
6
|
+
const KsSecret_1 = require("../../Core/KsSecret");
|
|
7
|
+
const configBackup = ({ name, config, ...others }) => {
|
|
8
|
+
let backupTarget = '';
|
|
9
|
+
let backupTargetCredentialSecret = '';
|
|
10
|
+
if (config.azureStorage) {
|
|
11
|
+
const { accountName, accountKey, containerName } = config.azureStorage;
|
|
12
|
+
const secret = (0, KsSecret_1.default)({
|
|
13
|
+
...others,
|
|
14
|
+
name: `${name}-azure-blob-backup`,
|
|
15
|
+
stringData: {
|
|
16
|
+
AZBLOB_ACCOUNT_NAME: accountName,
|
|
17
|
+
AZBLOB_ACCOUNT_KEY: accountKey,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
backupTargetCredentialSecret = secret.metadata.name;
|
|
21
|
+
backupTarget = (0, pulumi_1.interpolate) `azblob://${containerName}@core.windows.net/`;
|
|
22
|
+
}
|
|
23
|
+
return { backupTarget, backupTargetCredentialSecret };
|
|
24
|
+
};
|
|
25
|
+
//https://github.com/longhorn/longhorn/blob/master/chart/values.yaml
|
|
26
|
+
exports.default = ({ resources, backup, ...others }) => {
|
|
27
|
+
const name = 'longhorn';
|
|
28
|
+
const namespace = 'longhorn-system';
|
|
29
|
+
const ns = (0, Namespace_1.default)({ name: namespace, ...others });
|
|
30
|
+
const backupInfo = backup
|
|
31
|
+
? configBackup({ name, namespace, config: backup, ...others })
|
|
32
|
+
: {};
|
|
33
|
+
return new k8s.helm.v3.Chart(name, {
|
|
34
|
+
namespace,
|
|
35
|
+
chart: 'longhorn',
|
|
36
|
+
fetchOpts: { repo: 'https://charts.longhorn.io' },
|
|
37
|
+
skipAwait: true,
|
|
38
|
+
values: {
|
|
39
|
+
csi: { kubeletRootDir: '/var/lib/kubelet' },
|
|
40
|
+
defaultSettings: {
|
|
41
|
+
...backupInfo,
|
|
42
|
+
//replicaSoftAntiAffinity: true,
|
|
43
|
+
//replicaZoneSoftAntiAffinity: true,
|
|
44
|
+
//createDefaultDiskLabeledNodes: true,
|
|
45
|
+
//defaultReplicaCount: 2,
|
|
46
|
+
//defaultLonghornStaticStorageClass: 'longhorn-static-storageclass',
|
|
47
|
+
//defaultDataPath:
|
|
48
|
+
guaranteedEngineCPU: 0.1,
|
|
49
|
+
diskType: 'flesystem',
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
}, { ...others, dependsOn: ns });
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvU3RvcmFnZS9Mb25naG9ybi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUEwQztBQUMxQyxvREFBNkM7QUFDN0MsMkNBQW9EO0FBQ3BELGtEQUEyQztBQWUzQyxNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLElBQUksRUFDSixNQUFNLEVBQ04sR0FBRyxNQUFNLEVBQytCLEVBQUUsRUFBRTtJQUM1QyxJQUFJLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBQ3JDLElBQUksNEJBQTRCLEdBQWtCLEVBQUUsQ0FBQztJQUVyRCxJQUFJLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBRXZFLE1BQU0sTUFBTSxHQUFHLElBQUEsa0JBQVEsRUFBQztZQUN0QixHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUUsR0FBRyxJQUFJLG9CQUFvQjtZQUNqQyxVQUFVLEVBQUU7Z0JBQ1YsbUJBQW1CLEVBQUUsV0FBVztnQkFDaEMsa0JBQWtCLEVBQUUsVUFBVTthQUMvQjtTQUNGLENBQUMsQ0FBQztRQUVILDRCQUE0QixHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQ3BELFlBQVksR0FBRyxJQUFBLG9CQUFXLEVBQUEsWUFBWSxhQUFhLG9CQUFvQixDQUFDO0lBQzFFLENBQUM7SUFFRCxPQUFPLEVBQUUsWUFBWSxFQUFFLDRCQUE0QixFQUFFLENBQUM7QUFDeEQsQ0FBQyxDQUFDO0FBRUYsb0VBQW9FO0FBQ3BFLGtCQUFlLENBQUMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxFQUFpQixFQUFFLEVBQUU7SUFDakUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBQ3hCLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDO0lBRXBDLE1BQU0sRUFBRSxHQUFHLElBQUEsbUJBQVMsRUFBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sVUFBVSxHQUFHLE1BQU07UUFDdkIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQzlELENBQUMsQ0FBQyxFQUFFLENBQUM7SUFFUCxPQUFPLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUMxQixJQUFJLEVBQ0o7UUFDRSxTQUFTO1FBQ1QsS0FBSyxFQUFFLFVBQVU7UUFDakIsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLDRCQUE0QixFQUFFO1FBQ2pELFNBQVMsRUFBRSxJQUFJO1FBRWYsTUFBTSxFQUFFO1lBQ04sR0FBRyxFQUFFLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFO1lBQzNDLGVBQWUsRUFBRTtnQkFDZixHQUFHLFVBQVU7Z0JBQ2IsZ0NBQWdDO2dCQUNoQyxvQ0FBb0M7Z0JBQ3BDLHNDQUFzQztnQkFDdEMseUJBQXlCO2dCQUN6QixvRUFBb0U7Z0JBQ3BFLGtCQUFrQjtnQkFDbEIsbUJBQW1CLEVBQUUsR0FBRztnQkFDeEIsUUFBUSxFQUFFLFdBQVc7YUFDdEI7U0FDRjtLQUNGLEVBQ0QsRUFBRSxHQUFHLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQzdCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
3
|
+
import { K8sArgs } from '../types';
|
|
4
|
+
interface AzureFileStorageProps {
|
|
5
|
+
name: string;
|
|
6
|
+
resourceGroup?: pulumi.Input<string>;
|
|
7
|
+
secretName: pulumi.Input<string>;
|
|
8
|
+
namespace?: pulumi.Input<string>;
|
|
9
|
+
/** requests storage: 5Gi or 10Gi*/
|
|
10
|
+
storage?: string;
|
|
11
|
+
mountOptions?: string[];
|
|
12
|
+
provider: k8s.Provider;
|
|
13
|
+
}
|
|
14
|
+
export declare const createPVCForAzureFileShare: ({ name, resourceGroup, namespace, secretName, storage, mountOptions, provider, }: AzureFileStorageProps) => import("@pulumi/kubernetes/core/v1/persistentVolumeClaim").PersistentVolumeClaim;
|
|
15
|
+
interface StorageClassProps extends K8sArgs {
|
|
16
|
+
name: string;
|
|
17
|
+
namespace?: pulumi.Input<string>;
|
|
18
|
+
storageClassName?: pulumi.Input<string>;
|
|
19
|
+
volumeMode?: 'Filesystem';
|
|
20
|
+
/** requests storage: 5Gi or 10Gi*/
|
|
21
|
+
storageGb?: string;
|
|
22
|
+
accessMode?: 'ReadWriteOnce' | 'ReadWriteMany';
|
|
23
|
+
}
|
|
24
|
+
export declare const createPVCForStorageClass: ({ name, namespace, storageClassName, storageGb, accessMode, provider, dependsOn, }: StorageClassProps) => import("@pulumi/kubernetes/core/v1/persistentVolumeClaim").PersistentVolumeClaim;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPVCForStorageClass = exports.createPVCForAzureFileShare = void 0;
|
|
4
|
+
const k8s = require("@pulumi/kubernetes");
|
|
5
|
+
const Random_1 = require("../../Core/Random");
|
|
6
|
+
const defaultMountOptions = [
|
|
7
|
+
'dir_mode=0777',
|
|
8
|
+
'file_mode=0777',
|
|
9
|
+
'uid=0',
|
|
10
|
+
'gid=0',
|
|
11
|
+
'mfsymlinks',
|
|
12
|
+
'cache=strict',
|
|
13
|
+
'nosharesock',
|
|
14
|
+
'nobrl',
|
|
15
|
+
];
|
|
16
|
+
const createPVCForAzureFileShare = ({ name, resourceGroup, namespace, secretName, storage = '5Gi', mountOptions = defaultMountOptions, provider, }) => {
|
|
17
|
+
const v = new k8s.core.v1.PersistentVolume(name, {
|
|
18
|
+
metadata: {
|
|
19
|
+
name,
|
|
20
|
+
namespace,
|
|
21
|
+
annotations: { 'pulumi.com/skipAwait': 'true' },
|
|
22
|
+
},
|
|
23
|
+
spec: {
|
|
24
|
+
capacity: {
|
|
25
|
+
storage,
|
|
26
|
+
},
|
|
27
|
+
accessModes: ['ReadWriteMany'],
|
|
28
|
+
persistentVolumeReclaimPolicy: 'Retain',
|
|
29
|
+
csi: {
|
|
30
|
+
driver: 'file.csi.azure.com',
|
|
31
|
+
readOnly: false,
|
|
32
|
+
volumeHandle: (0, Random_1.randomUuId)(name).result,
|
|
33
|
+
volumeAttributes: resourceGroup
|
|
34
|
+
? { shareName: name, resourceGroup }
|
|
35
|
+
: { shareName: name },
|
|
36
|
+
nodeStageSecretRef: { name: secretName, namespace },
|
|
37
|
+
},
|
|
38
|
+
mountOptions,
|
|
39
|
+
},
|
|
40
|
+
}, { provider });
|
|
41
|
+
return new k8s.core.v1.PersistentVolumeClaim(name, {
|
|
42
|
+
metadata: {
|
|
43
|
+
name,
|
|
44
|
+
namespace,
|
|
45
|
+
annotations: { 'pulumi.com/skipAwait': 'true' },
|
|
46
|
+
},
|
|
47
|
+
spec: {
|
|
48
|
+
accessModes: ['ReadWriteMany'],
|
|
49
|
+
resources: {
|
|
50
|
+
requests: {
|
|
51
|
+
storage,
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
storageClassName: '',
|
|
55
|
+
volumeName: v.metadata.name,
|
|
56
|
+
},
|
|
57
|
+
}, { provider, dependsOn: v });
|
|
58
|
+
};
|
|
59
|
+
exports.createPVCForAzureFileShare = createPVCForAzureFileShare;
|
|
60
|
+
const createPVCForStorageClass = ({ name, namespace, storageClassName = '', storageGb = '5Gi', accessMode = 'ReadWriteOnce', provider, dependsOn, }) => {
|
|
61
|
+
return new k8s.core.v1.PersistentVolumeClaim(`${name}-claim`, {
|
|
62
|
+
metadata: {
|
|
63
|
+
name: `${name}-claim`,
|
|
64
|
+
annotations: { 'pulumi.com/skipAwait': 'true' },
|
|
65
|
+
namespace,
|
|
66
|
+
},
|
|
67
|
+
spec: {
|
|
68
|
+
accessModes: [accessMode],
|
|
69
|
+
resources: {
|
|
70
|
+
requests: {
|
|
71
|
+
storage: storageGb,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
storageClassName,
|
|
75
|
+
},
|
|
76
|
+
}, { provider, dependsOn, deleteBeforeReplace: true });
|
|
77
|
+
};
|
|
78
|
+
exports.createPVCForStorageClass = createPVCForStorageClass;
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvU3RvcmFnZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwwQ0FBMEM7QUFDMUMsOENBQStDO0FBRy9DLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsZUFBZTtJQUNmLGdCQUFnQjtJQUNoQixPQUFPO0lBQ1AsT0FBTztJQUNQLFlBQVk7SUFDWixjQUFjO0lBQ2QsYUFBYTtJQUNiLE9BQU87Q0FDUixDQUFDO0FBZUssTUFBTSwwQkFBMEIsR0FBRyxDQUFDLEVBQ3pDLElBQUksRUFDSixhQUFhLEVBQ2IsU0FBUyxFQUNULFVBQVUsRUFDVixPQUFPLEdBQUcsS0FBSyxFQUNmLFlBQVksR0FBRyxtQkFBbUIsRUFDbEMsUUFBUSxHQUNjLEVBQUUsRUFBRTtJQUMxQixNQUFNLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUN4QyxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULFdBQVcsRUFBRSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRTtTQUNoRDtRQUNELElBQUksRUFBRTtZQUNKLFFBQVEsRUFBRTtnQkFDUixPQUFPO2FBQ1I7WUFDRCxXQUFXLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDOUIsNkJBQTZCLEVBQUUsUUFBUTtZQUN2QyxHQUFHLEVBQUU7Z0JBQ0gsTUFBTSxFQUFFLG9CQUFvQjtnQkFDNUIsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsWUFBWSxFQUFFLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQyxNQUFNO2dCQUNyQyxnQkFBZ0IsRUFBRSxhQUFhO29CQUM3QixDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtvQkFDcEMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtnQkFDdkIsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRTthQUNwRDtZQUNELFlBQVk7U0FDYjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO0lBRUYsT0FBTyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUMxQyxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUztZQUNULFdBQVcsRUFBRSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sRUFBRTtTQUNoRDtRQUNELElBQUksRUFBRTtZQUNKLFdBQVcsRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUM5QixTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFO29CQUNSLE9BQU87aUJBQ1I7YUFDRjtZQUNELGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsVUFBVSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSTtTQUM1QjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUMzQixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBM0RXLFFBQUEsMEJBQTBCLDhCQTJEckM7QUFhSyxNQUFNLHdCQUF3QixHQUFHLENBQUMsRUFDdkMsSUFBSSxFQUNKLFNBQVMsRUFDVCxnQkFBZ0IsR0FBRyxFQUFFLEVBQ3JCLFNBQVMsR0FBRyxLQUFLLEVBQ2pCLFVBQVUsR0FBRyxlQUFlLEVBQzVCLFFBQVEsRUFDUixTQUFTLEdBQ1MsRUFBRSxFQUFFO0lBQ3RCLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FDMUMsR0FBRyxJQUFJLFFBQVEsRUFDZjtRQUNFLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxHQUFHLElBQUksUUFBUTtZQUNyQixXQUFXLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUU7WUFDL0MsU0FBUztTQUNWO1FBQ0QsSUFBSSxFQUFFO1lBQ0osV0FBVyxFQUFFLENBQUMsVUFBVSxDQUFDO1lBQ3pCLFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUU7b0JBQ1IsT0FBTyxFQUFFLFNBQVM7aUJBQ25CO2FBQ0Y7WUFFRCxnQkFBZ0I7U0FDakI7S0FDRixFQUNELEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLEVBQUUsQ0FDbkQsQ0FBQztBQUNKLENBQUMsQ0FBQztBQTlCVyxRQUFBLHdCQUF3Qiw0QkE4Qm5DIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DefaultK8sArgs } from '../../types';
|
|
2
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
3
|
+
export interface LocalStackProps extends DefaultK8sArgs {
|
|
4
|
+
domain: string;
|
|
5
|
+
}
|
|
6
|
+
declare const _default: ({ name, namespace, domain, provider, }: LocalStackProps) => k8s.helm.v3.Chart;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const k8s = require("@pulumi/kubernetes");
|
|
4
|
+
const CertHelper_1 = require("../../CertHelper");
|
|
5
|
+
exports.default = ({ name = 'localstack', namespace, domain, provider, }) => {
|
|
6
|
+
const localStack = new k8s.helm.v3.Chart(name, {
|
|
7
|
+
namespace,
|
|
8
|
+
chart: 'localstack',
|
|
9
|
+
fetchOpts: { repo: 'https://helm.localstack.cloud' },
|
|
10
|
+
values: {
|
|
11
|
+
ingress: {
|
|
12
|
+
enabled: true,
|
|
13
|
+
annotations: {
|
|
14
|
+
'kubernetes.io/ingress.class': 'nginx',
|
|
15
|
+
'kubernetes.io/tls-acme': 'true',
|
|
16
|
+
},
|
|
17
|
+
hosts: [
|
|
18
|
+
{
|
|
19
|
+
host: `aws.${domain}`,
|
|
20
|
+
paths: [{ path: '/', pathType: 'ImplementationSpecific' }],
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
tls: [{ secretName: (0, CertHelper_1.getTlsName)(name, true) }],
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
}, { provider });
|
|
27
|
+
return localStack;
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9Ub29scy9BV1MvTG9jYWxTdGFjay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUEwQztBQUMxQyxpREFBOEM7QUFNOUMsa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxZQUFZLEVBQ25CLFNBQVMsRUFDVCxNQUFNLEVBQ04sUUFBUSxHQUNRLEVBQUUsRUFBRTtJQUNwQixNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDdEMsSUFBSSxFQUNKO1FBQ0UsU0FBUztRQUNULEtBQUssRUFBRSxZQUFZO1FBQ25CLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSwrQkFBK0IsRUFBRTtRQUVwRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUU7Z0JBQ1AsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsV0FBVyxFQUFFO29CQUNYLDZCQUE2QixFQUFFLE9BQU87b0JBQ3RDLHdCQUF3QixFQUFFLE1BQU07aUJBQ2pDO2dCQUNELEtBQUssRUFBRTtvQkFDTDt3QkFDRSxJQUFJLEVBQUUsT0FBTyxNQUFNLEVBQUU7d0JBQ3JCLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQztxQkFDM0Q7aUJBQ0Y7Z0JBQ0QsR0FBRyxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBQSx1QkFBVSxFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQzlDO1NBQ0Y7S0FDRixFQUNELEVBQUUsUUFBUSxFQUFFLENBQ2IsQ0FBQztJQUVGLE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DefaultKsAppArgs } from '../../types';
|
|
2
|
+
export interface AwsS3Props extends Omit<DefaultKsAppArgs, 'name'> {
|
|
3
|
+
storageClassName: string;
|
|
4
|
+
}
|
|
5
|
+
declare const _default: ({ namespace, ingress, runAs, storageClassName, ...others }: AwsS3Props) => void;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Deployment_1 = require("../../Deployment");
|
|
4
|
+
const Storage_1 = require("../../Storage");
|
|
5
|
+
exports.default = ({ namespace, ingress, runAs, storageClassName, ...others }) => {
|
|
6
|
+
const name = 'aws-s3';
|
|
7
|
+
const image = 'scireum/s3-ninja:latest';
|
|
8
|
+
//Storage
|
|
9
|
+
const persisVolume = (0, Storage_1.createPVCForStorageClass)({
|
|
10
|
+
name,
|
|
11
|
+
namespace,
|
|
12
|
+
accessMode: 'ReadWriteMany',
|
|
13
|
+
...others,
|
|
14
|
+
storageClassName,
|
|
15
|
+
});
|
|
16
|
+
(0, Deployment_1.default)({
|
|
17
|
+
name,
|
|
18
|
+
namespace,
|
|
19
|
+
podConfig: {
|
|
20
|
+
ports: { http: 9000 },
|
|
21
|
+
image,
|
|
22
|
+
resources: {
|
|
23
|
+
requests: { memory: '1Mi', cpu: '1m' },
|
|
24
|
+
limits: {
|
|
25
|
+
memory: '1Gi',
|
|
26
|
+
cpu: '1',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
// securityContext: runAs,
|
|
30
|
+
volumes: [
|
|
31
|
+
{
|
|
32
|
+
name: 'data',
|
|
33
|
+
mountPath: '/home/sirius/data',
|
|
34
|
+
subPath: 'sample',
|
|
35
|
+
persistentVolumeClaim: persisVolume.metadata.name,
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
},
|
|
39
|
+
ingressConfig: ingress,
|
|
40
|
+
deploymentConfig: { replicas: 1 },
|
|
41
|
+
...others,
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvVG9vbHMvQVdTL1MzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaURBQTBDO0FBRTFDLDJDQUF5RDtBQU16RCxrQkFBZSxDQUFDLEVBQ2QsU0FBUyxFQUNULE9BQU8sRUFDUCxLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLEdBQUcsTUFBTSxFQUNFLEVBQUUsRUFBRTtJQUNmLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyx5QkFBeUIsQ0FBQztJQUV4QyxTQUFTO0lBQ1QsTUFBTSxZQUFZLEdBQUcsSUFBQSxrQ0FBd0IsRUFBQztRQUM1QyxJQUFJO1FBQ0osU0FBUztRQUNULFVBQVUsRUFBRSxlQUFlO1FBQzNCLEdBQUcsTUFBTTtRQUNULGdCQUFnQjtLQUNqQixDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFVLEVBQUM7UUFDVCxJQUFJO1FBQ0osU0FBUztRQUVULFNBQVMsRUFBRTtZQUNULEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDckIsS0FBSztZQUNMLFNBQVMsRUFBRTtnQkFDVCxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7Z0JBQ3RDLE1BQU0sRUFBRTtvQkFDTixNQUFNLEVBQUUsS0FBSztvQkFDYixHQUFHLEVBQUUsR0FBRztpQkFDVDthQUNGO1lBQ0QsMEJBQTBCO1lBQzFCLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsTUFBTTtvQkFDWixTQUFTLEVBQUUsbUJBQW1CO29CQUM5QixPQUFPLEVBQUUsUUFBUTtvQkFDakIscUJBQXFCLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJO2lCQUNsRDthQUNGO1NBQ0Y7UUFDRCxhQUFhLEVBQUUsT0FBTztRQUN0QixnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUU7UUFFakMsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { AwsS3Props } from './S3';
|
|
2
|
+
import { DefaultK8sArgs } from '../../types';
|
|
3
|
+
interface Props extends Omit<DefaultK8sArgs, 'name'> {
|
|
4
|
+
s3?: Omit<AwsS3Props, 'domain' | 'namespace' | 'provider' | 'dependsOn'>;
|
|
5
|
+
}
|
|
6
|
+
declare const _default: ({ namespace, s3, ...others }: Props) => void;
|
|
7
|
+
export default _default;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Namespace_1 = require("../../Core/Namespace");
|
|
4
|
+
const S3_1 = require("./S3");
|
|
5
|
+
exports.default = ({ namespace, s3, ...others }) => {
|
|
6
|
+
const ns = namespace
|
|
7
|
+
? { metadata: { name: namespace } }
|
|
8
|
+
: (0, Namespace_1.default)({ name: 'aws-local', ...others });
|
|
9
|
+
if (s3)
|
|
10
|
+
(0, S3_1.default)({ namespace: ns.metadata.name, ...others, ...s3 });
|
|
11
|
+
// if (localStack)
|
|
12
|
+
// LocalStack({ namespace: ns.metadata.name, ...others, ...localStack });
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvVG9vbHMvQVdTL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsb0RBQTZDO0FBQzdDLDZCQUF5QztBQVd6QyxrQkFBZSxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxHQUFHLE1BQU0sRUFBUyxFQUFFLEVBQUU7SUFDckQsTUFBTSxFQUFFLEdBQUcsU0FBUztRQUNsQixDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUU7UUFDbkMsQ0FBQyxDQUFDLElBQUEsbUJBQVMsRUFBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRWhELElBQUksRUFBRTtRQUFFLElBQUEsWUFBSyxFQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVqRSxrQkFBa0I7SUFDbEIsMkVBQTJFO0FBQzdFLENBQUMsQ0FBQyJ9
|