@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,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Deployment_1 = require("../../Deployment");
|
|
4
|
+
const dotnetConfig_1 = require("../../../Common/AppConfigs/dotnetConfig");
|
|
5
|
+
const VairableResolvers_1 = require("../../VairableResolvers");
|
|
6
|
+
const createReverseProxyConfig = async (reverseProxy, vaultInfo) => {
|
|
7
|
+
const clusterConfig = {};
|
|
8
|
+
const routeConfig = {};
|
|
9
|
+
let routeIndex = 0;
|
|
10
|
+
reverseProxy.clusters.forEach((c, i) => {
|
|
11
|
+
const clusterIndex = i + 1;
|
|
12
|
+
const clusterName = `cluster${clusterIndex}`;
|
|
13
|
+
const urls = Array.isArray(c.destinationUrl)
|
|
14
|
+
? c.destinationUrl
|
|
15
|
+
: [c.destinationUrl];
|
|
16
|
+
if (c.loadBalancingPolicy) {
|
|
17
|
+
clusterConfig[`ReverseProxy__Clusters__${clusterName}__LoadBalancingPolicy`] = c.loadBalancingPolicy;
|
|
18
|
+
}
|
|
19
|
+
urls.forEach((url, i) => {
|
|
20
|
+
clusterConfig[`ReverseProxy__Clusters__${clusterName}__Destinations__destination${i}__Address`] = url;
|
|
21
|
+
});
|
|
22
|
+
c.routes.forEach((r) => {
|
|
23
|
+
routeIndex += 1;
|
|
24
|
+
const routeName = `ReverseProxy__Routes__route${routeIndex}`;
|
|
25
|
+
routeConfig[`${routeName}__ClusterId`] = clusterName;
|
|
26
|
+
routeConfig[`${routeName}__Match__Path`] = r.path;
|
|
27
|
+
if (r.headers) {
|
|
28
|
+
r.headers.forEach((h, headerIndex) => {
|
|
29
|
+
routeConfig[`${routeName}__Match__Headers__${headerIndex}__Name`] =
|
|
30
|
+
h.name;
|
|
31
|
+
routeConfig[`${routeName}__Match__Headers__${headerIndex}__Mode`] =
|
|
32
|
+
h.mode;
|
|
33
|
+
h.values.forEach((v, valueIndex) => {
|
|
34
|
+
routeConfig[`${routeName}__Match__Headers__${headerIndex}__Values__${valueIndex}`] = v;
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
if (r.transforms) {
|
|
39
|
+
r.transforms.forEach((ts, i) => Object.keys(ts).forEach((k) => (routeConfig[`${routeName}__Transforms__${i}__${k}`] =
|
|
40
|
+
ts[k].toString())));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
if (vaultInfo)
|
|
45
|
+
return await (0, VairableResolvers_1.default)({
|
|
46
|
+
config: { ...routeConfig, ...clusterConfig },
|
|
47
|
+
vaultInfo,
|
|
48
|
+
});
|
|
49
|
+
return { configMap: { ...routeConfig, ...clusterConfig }, secrets: {} };
|
|
50
|
+
};
|
|
51
|
+
const createForwardedProxyConfig = async (forwarderProxy, vaultInfo) => {
|
|
52
|
+
const config = {};
|
|
53
|
+
forwarderProxy.forEach((c, i) => {
|
|
54
|
+
config[`ForwarderProxy__${i}__Route`] = c.route;
|
|
55
|
+
c.destinationUrls.forEach((d, di) => (config[`ForwarderProxy__${i}__Destinations__${di}`] = d));
|
|
56
|
+
if (c.headers) {
|
|
57
|
+
Object.keys(c.headers).forEach((k) => {
|
|
58
|
+
config[`ForwarderProxy__${i}__Headers__${k}`] = c.headers[k];
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
if (c.sslProtocols) {
|
|
62
|
+
config[`ForwarderProxy__${i}__SslProtocols`] = c.sslProtocols;
|
|
63
|
+
}
|
|
64
|
+
if (c.clientCertificate) {
|
|
65
|
+
config[`ForwarderProxy__${i}__ClientCertificate`] = c.clientCertificate;
|
|
66
|
+
if (c.clientCertificatePassword)
|
|
67
|
+
config[`ForwarderProxy__${i}__ClientCertificatePassword`] =
|
|
68
|
+
c.clientCertificatePassword;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
if (vaultInfo)
|
|
72
|
+
return await (0, VairableResolvers_1.default)({ config, vaultInfo });
|
|
73
|
+
return { configMap: config, secrets: {} };
|
|
74
|
+
};
|
|
75
|
+
/** YARP Reverse Proxy https://microsoft.github.io/reverse-proxy */
|
|
76
|
+
exports.default = async ({ reverseProxy, forwardedProxy, namespace, ingress, name = 'proxy', enableDebug, enableHA, vaultInfo, ...others }) => {
|
|
77
|
+
const proxyConfig = reverseProxy
|
|
78
|
+
? await createReverseProxyConfig(reverseProxy, vaultInfo)
|
|
79
|
+
: { configMap: {}, secrets: {} };
|
|
80
|
+
const forwarderConfig = forwardedProxy
|
|
81
|
+
? await createForwardedProxyConfig(forwardedProxy, vaultInfo)
|
|
82
|
+
: { configMap: {}, secrets: {} };
|
|
83
|
+
const proxy = (0, Deployment_1.default)({
|
|
84
|
+
...others,
|
|
85
|
+
name,
|
|
86
|
+
namespace,
|
|
87
|
+
configMap: {
|
|
88
|
+
...dotnetConfig_1.defaultDotNetConfig,
|
|
89
|
+
Logging__LogLevel__Yarp: enableDebug ? 'Debug' : 'Warning',
|
|
90
|
+
FeatureManagement__EnableForwarder: reverseProxy ? 'true' : 'false',
|
|
91
|
+
FeatureManagement__EnableReverseProxy: forwarderConfig ? 'true' : 'false',
|
|
92
|
+
FeatureManagement__EnableHttpLog: enableDebug ? 'true' : 'false',
|
|
93
|
+
...proxyConfig.configMap,
|
|
94
|
+
...forwarderConfig.configMap,
|
|
95
|
+
},
|
|
96
|
+
secrets: { ...proxyConfig.secrets, ...forwarderConfig.secrets },
|
|
97
|
+
ingressConfig: ingress,
|
|
98
|
+
podConfig: {
|
|
99
|
+
ports: { http: 8080 },
|
|
100
|
+
image: 'baoduy2412/hbd.yarp-proxy:latest',
|
|
101
|
+
},
|
|
102
|
+
deploymentConfig: { replicas: 1 },
|
|
103
|
+
enableHA: enableHA ? { name, maxReplicas: 3, minReplicas: 1 } : undefined,
|
|
104
|
+
});
|
|
105
|
+
return proxy;
|
|
106
|
+
};
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvS3ViZVgvQXBwcy9ZYXJwUHJveHkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxpREFBMEM7QUFDMUMsMEVBQThFO0FBRTlFLCtEQUF1RDtBQVd2RCxNQUFNLHdCQUF3QixHQUFHLEtBQUssRUFDcEMsWUFBMEIsRUFDMUIsU0FBd0IsRUFDeEIsRUFBRTtJQUNGLE1BQU0sYUFBYSxHQUFrQyxFQUFFLENBQUM7SUFDeEQsTUFBTSxXQUFXLEdBQWtDLEVBQUUsQ0FBQztJQUN0RCxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFFbkIsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDckMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQixNQUFNLFdBQVcsR0FBRyxVQUFVLFlBQVksRUFBRSxDQUFDO1FBQzdDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztZQUMxQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7WUFDbEIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDMUIsYUFBYSxDQUNYLDJCQUEyQixXQUFXLHVCQUF1QixDQUM5RCxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN0QixhQUFhLENBQ1gsMkJBQTJCLFdBQVcsOEJBQThCLENBQUMsV0FBVyxDQUNqRixHQUFHLEdBQUcsQ0FBQztRQUNWLENBQUMsQ0FBQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFP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
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { DeploymentIngress } from '../../Deployment';
|
|
2
|
+
import { Input } from '@pulumi/pulumi';
|
|
3
|
+
export type Transform = {
|
|
4
|
+
PathPrefix: string;
|
|
5
|
+
} | {
|
|
6
|
+
PathRemovePrefix: string;
|
|
7
|
+
} | {
|
|
8
|
+
PathPattern: string;
|
|
9
|
+
} | {
|
|
10
|
+
RequestHeader: string;
|
|
11
|
+
Append: string;
|
|
12
|
+
} | {
|
|
13
|
+
ResponseHeader: string;
|
|
14
|
+
Append: string;
|
|
15
|
+
When?: 'Always';
|
|
16
|
+
} | {
|
|
17
|
+
ClientCert: 'X-Client-Cert' | string;
|
|
18
|
+
} | {
|
|
19
|
+
RequestHeadersCopy: boolean;
|
|
20
|
+
} | {
|
|
21
|
+
RequestHeaderOriginalHost: boolean;
|
|
22
|
+
} | {
|
|
23
|
+
'X-Forwarded': 'proto' | 'host' | 'for' | 'prefix' | string;
|
|
24
|
+
Append: boolean;
|
|
25
|
+
Prefix: 'X-Forwarded-';
|
|
26
|
+
};
|
|
27
|
+
export interface Route {
|
|
28
|
+
path: string | '{**catch-all}' | '{**remainder}';
|
|
29
|
+
/**Header matching*/
|
|
30
|
+
headers?: Array<{
|
|
31
|
+
name: string;
|
|
32
|
+
values: string[];
|
|
33
|
+
mode: 'ExactHeader' | 'HeaderPrefix' | 'Contains' | 'NotContains' | 'Exists';
|
|
34
|
+
}>;
|
|
35
|
+
transforms?: Transform[];
|
|
36
|
+
}
|
|
37
|
+
export interface Cluster {
|
|
38
|
+
loadBalancingPolicy?: 'FirstAlphabetical' | 'Random' | 'PowerOfTwoChoices' | 'RoundRobin' | 'LeastRequests';
|
|
39
|
+
destinationUrl: string | Array<string>;
|
|
40
|
+
routes: Route[];
|
|
41
|
+
}
|
|
42
|
+
export interface ReverseProxy {
|
|
43
|
+
clusters: Cluster[];
|
|
44
|
+
ingressConfig?: DeploymentIngress;
|
|
45
|
+
}
|
|
46
|
+
export interface ForwardedProxy {
|
|
47
|
+
route: string;
|
|
48
|
+
destinationUrls: Array<string>;
|
|
49
|
+
clientCertificate?: Input<string>;
|
|
50
|
+
clientCertificatePassword?: Input<string>;
|
|
51
|
+
sslProtocols?: 'Ssl2' | 'Ssl3' | 'Tls' | 'Tls11' | 'Tls12' | 'Tls13';
|
|
52
|
+
headers?: {
|
|
53
|
+
[key: string]: string;
|
|
54
|
+
};
|
|
55
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9BcHBzL1lhcnBQcm94eS90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getTlsName: (domain: string, enableCertIssuer: boolean) => string;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTlsName = void 0;
|
|
4
|
+
const Helpers_1 = require("../Common/Helpers");
|
|
5
|
+
const getTlsName = (domain, enableCertIssuer) => enableCertIssuer
|
|
6
|
+
? `tls-${(0, Helpers_1.replaceAll)(domain, '.', '-')}-lets`
|
|
7
|
+
: `tls-${(0, Helpers_1.replaceAll)(domain, '.', '-')}-imported`;
|
|
8
|
+
exports.getTlsName = getTlsName;
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2VydEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9LdWJlWC9DZXJ0SGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtDQUErQztBQUV4QyxNQUFNLFVBQVUsR0FBRyxDQUFDLE1BQWMsRUFBRSxnQkFBeUIsRUFBRSxFQUFFLENBQ3RFLGdCQUFnQjtJQUNkLENBQUMsQ0FBQyxPQUFPLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxPQUFPO0lBQzVDLENBQUMsQ0FBQyxPQUFPLElBQUEsb0JBQVUsRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUM7QUFIeEMsUUFBQSxVQUFVLGNBRzhCIn0=
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { KeyVaultInfo } from '../types';
|
|
2
|
+
import { K8sArgs } from './types';
|
|
3
|
+
export interface FromCertOrderProps extends K8sArgs {
|
|
4
|
+
namespaces: string[];
|
|
5
|
+
/** The cert name or domain name */
|
|
6
|
+
certName: string;
|
|
7
|
+
}
|
|
8
|
+
/** Import Cert to K8s from Azure Cert Order*/
|
|
9
|
+
export declare const certImportFromCertOrder: ({ namespaces, certName, ...others }: FromCertOrderProps) => Promise<void>;
|
|
10
|
+
export declare const certImportFromFolder: ({ certName, namespaces, certFolder, ...others }: FromCertOrderProps & {
|
|
11
|
+
certFolder: string;
|
|
12
|
+
}) => string | undefined;
|
|
13
|
+
interface ImportCertFromVaultProps extends K8sArgs {
|
|
14
|
+
certNames: string[];
|
|
15
|
+
namespace: string;
|
|
16
|
+
vaultInfo: KeyVaultInfo;
|
|
17
|
+
}
|
|
18
|
+
export declare const certImportFromVault: ({ certNames, namespace, vaultInfo, ...others }: ImportCertFromVaultProps) => Promise<void>;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.certImportFromVault = exports.certImportFromFolder = exports.certImportFromCertOrder = void 0;
|
|
4
|
+
const Helpers_1 = require("./Helpers");
|
|
5
|
+
const CertHelper_1 = require("./CertHelper");
|
|
6
|
+
const fs = require("fs");
|
|
7
|
+
const Helper_1 = require("../KeyVault/Helper");
|
|
8
|
+
const KsCertSecret_1 = require("./Core/KsCertSecret");
|
|
9
|
+
const Certificate_1 = require("../Certificate");
|
|
10
|
+
/** Import Cert to K8s from Azure Cert Order*/
|
|
11
|
+
const certImportFromCertOrder = async ({ namespaces, certName, ...others }) => {
|
|
12
|
+
const cert = await (0, Helpers_1.getKubeDomainCert)(certName);
|
|
13
|
+
if (!cert)
|
|
14
|
+
return;
|
|
15
|
+
const name = (0, CertHelper_1.getTlsName)(certName, false);
|
|
16
|
+
namespaces.map((n, i) => (0, KsCertSecret_1.default)({
|
|
17
|
+
name: `${name}-${i}`,
|
|
18
|
+
namespace: n,
|
|
19
|
+
certInfo: cert,
|
|
20
|
+
...others,
|
|
21
|
+
}));
|
|
22
|
+
};
|
|
23
|
+
exports.certImportFromCertOrder = certImportFromCertOrder;
|
|
24
|
+
const getCertFromFolder = (folder) => {
|
|
25
|
+
const cert = fs.readFileSync(`./${folder}/cert.crt`, { encoding: 'utf8' });
|
|
26
|
+
const ca = fs.readFileSync(`./${folder}/ca.crt`, { encoding: 'utf8' });
|
|
27
|
+
const privateKey = fs.readFileSync(`./${folder}/private.key`, {
|
|
28
|
+
encoding: 'utf8',
|
|
29
|
+
});
|
|
30
|
+
return { cert, ca, privateKey };
|
|
31
|
+
};
|
|
32
|
+
const certImportFromFolder = ({ certName, namespaces, certFolder, ...others }) => {
|
|
33
|
+
const cert = getCertFromFolder(certFolder);
|
|
34
|
+
if (!cert)
|
|
35
|
+
return;
|
|
36
|
+
const name = (0, CertHelper_1.getTlsName)(certName, false);
|
|
37
|
+
namespaces.map((n, i) => (0, KsCertSecret_1.default)({
|
|
38
|
+
name: `${name}-${i}`,
|
|
39
|
+
namespace: n,
|
|
40
|
+
certInfo: cert,
|
|
41
|
+
...others,
|
|
42
|
+
}));
|
|
43
|
+
return name;
|
|
44
|
+
};
|
|
45
|
+
exports.certImportFromFolder = certImportFromFolder;
|
|
46
|
+
const certImportFromVault = async ({ certNames, namespace, vaultInfo, ...others }) => {
|
|
47
|
+
await Promise.all(certNames.map(async (c, i) => {
|
|
48
|
+
const cert = await (0, Helper_1.getSecret)({
|
|
49
|
+
name: c,
|
|
50
|
+
nameFormatted: false,
|
|
51
|
+
vaultInfo,
|
|
52
|
+
});
|
|
53
|
+
const pems = cert?.value
|
|
54
|
+
? (0, Certificate_1.convertPfxToPem)({
|
|
55
|
+
base64Cert: cert.value,
|
|
56
|
+
password: '',
|
|
57
|
+
})
|
|
58
|
+
: undefined;
|
|
59
|
+
if (pems) {
|
|
60
|
+
(0, KsCertSecret_1.default)({
|
|
61
|
+
name: `${c}-${i}`,
|
|
62
|
+
namespace,
|
|
63
|
+
certInfo: pems,
|
|
64
|
+
...others,
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}));
|
|
68
|
+
};
|
|
69
|
+
exports.certImportFromVault = certImportFromVault;
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2VydEltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvS3ViZVgvQ2VydEltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdUNBQThDO0FBQzlDLDZDQUEwQztBQUMxQyx5QkFBeUI7QUFFekIsK0NBQStDO0FBRS9DLHNEQUErQztBQUMvQyxnREFBaUQ7QUFRakQsOENBQThDO0FBQ3ZDLE1BQU0sdUJBQXVCLEdBQUcsS0FBSyxFQUFFLEVBQzVDLFVBQVUsRUFDVixRQUFRLEVBQ1IsR0FBRyxNQUFNLEVBQ1UsRUFBRSxFQUFFO0lBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSwyQkFBaUIsRUFBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU87SUFFbEIsTUFBTSxJQUFJLEdBQUcsSUFBQSx1QkFBVSxFQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN6QyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUEsc0JBQVksRUFBQztRQUNYLElBQUksRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQUU7UUFDcEIsU0FBUyxFQUFFLENBQUM7UUFDWixRQUFRLEVBQUUsSUFBSTtRQUNkLEdBQUcsTUFBTTtLQUNWLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBakJXLFFBQUEsdUJBQXVCLDJCQWlCbEM7QUFFRixNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUU7SUFDM0MsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLE1BQU0sV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0UsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLE1BQU0sU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdkUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLE1BQU0sY0FBYyxFQUFFO1FBQzVELFFBQVEsRUFBRSxNQUFNO0tBQ2pCLENBQUMsQ0FBQztJQUVILE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVLLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxFQUNuQyxRQUFRLEVBQ1IsVUFBVSxFQUNWLFVBQVUsRUFDVixHQUFHLE1BQU0sRUFDbUMsRUFBRSxFQUFFO0lBQ2hELE1BQU0sSUFBSSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTztJQUVsQixNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFVLEVBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsSUFBQSxzQkFBWSxFQUFDO1FBQ1gsSUFBSSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsRUFBRTtRQUNwQixTQUFTLEVBQUUsQ0FBQztRQUNaLFFBQVEsRUFBRSxJQUFJO1FBQ2QsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUNILENBQUM7SUFFRixPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQXBCVyxRQUFBLG9CQUFvQix3QkFvQi9CO0FBUUssTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQUUsRUFDeEMsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxNQUFNLEVBQ2dCLEVBQUUsRUFBRTtJQUM3QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQzNCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDO1lBQzNCLElBQUksRUFBRSxDQUFDO1lBQ1AsYUFBYSxFQUFFLEtBQUs7WUFDcEIsU0FBUztTQUNWLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLElBQUksRUFBRSxLQUFLO1lBQ3RCLENBQUMsQ0FBQyxJQUFBLDZCQUFlLEVBQUM7Z0JBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUN0QixRQUFRLEVBQUUsRUFBRTthQUNiLENBQUM7WUFDSixDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWQsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULElBQUEsc0JBQVksRUFBQztnQkFDWCxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQixTQUFTO2dCQUNULFFBQVEsRUFBRSxJQUFJO2dCQUNkLEdBQUcsTUFBTTthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBL0JXLFFBQUEsbUJBQW1CLHVCQStCOUIifQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as cf from '@pulumi/cloudflare';
|
|
2
|
+
import { KeyVaultInfo } from '../../types';
|
|
3
|
+
export interface CloudFlareCertCreatorProps {
|
|
4
|
+
domainName: string;
|
|
5
|
+
vaultInfo?: KeyVaultInfo;
|
|
6
|
+
provider: cf.Provider;
|
|
7
|
+
lock?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const getCloudflareOriginCert: ({ domainName, vaultInfo, }: Pick<Required<CloudFlareCertCreatorProps>, 'domainName' | 'vaultInfo'>) => Promise<{
|
|
10
|
+
privateKey: string;
|
|
11
|
+
cert: string;
|
|
12
|
+
ca: string;
|
|
13
|
+
}>;
|
|
14
|
+
declare const _default: ({ domainName, provider, vaultInfo, lock, }: CloudFlareCertCreatorProps) => Promise<{
|
|
15
|
+
privateKey: import("@pulumi/pulumi").Output<string>;
|
|
16
|
+
cert: import("@pulumi/pulumi").Output<string>;
|
|
17
|
+
ca: string;
|
|
18
|
+
}>;
|
|
19
|
+
export default _default;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCloudflareOriginCert = void 0;
|
|
4
|
+
const tls = require("@pulumi/tls");
|
|
5
|
+
const StackEnv_1 = require("../../Common/StackEnv");
|
|
6
|
+
const cf = require("@pulumi/cloudflare");
|
|
7
|
+
const CustomHelper_1 = require("../../KeyVault/CustomHelper");
|
|
8
|
+
const Helper_1 = require("../../KeyVault/Helper");
|
|
9
|
+
const getVaultNames = (domainName) => ({
|
|
10
|
+
privateKeyName: `cloudflare-${domainName}-privateKey`,
|
|
11
|
+
certName: `cloudflare-${domainName}-cert`,
|
|
12
|
+
caName: `cloudflare-${domainName}-ca`,
|
|
13
|
+
});
|
|
14
|
+
const getCloudflareOriginCert = async ({ domainName, vaultInfo, }) => {
|
|
15
|
+
const vaultNames = getVaultNames(domainName);
|
|
16
|
+
const cert = await (0, Helper_1.getSecret)({
|
|
17
|
+
name: vaultNames.certName,
|
|
18
|
+
vaultInfo,
|
|
19
|
+
});
|
|
20
|
+
const ca = await (0, Helper_1.getSecret)({
|
|
21
|
+
name: vaultNames.caName,
|
|
22
|
+
vaultInfo,
|
|
23
|
+
});
|
|
24
|
+
const pk = await (0, Helper_1.getSecret)({
|
|
25
|
+
name: vaultNames.privateKeyName,
|
|
26
|
+
vaultInfo,
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
privateKey: pk.value,
|
|
30
|
+
cert: cert.value,
|
|
31
|
+
ca: ca.value,
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
exports.getCloudflareOriginCert = getCloudflareOriginCert;
|
|
35
|
+
exports.default = async ({ domainName, provider, vaultInfo, lock = true, }) => {
|
|
36
|
+
const vaultNames = getVaultNames(domainName);
|
|
37
|
+
const algorithm = 'RSA';
|
|
38
|
+
//create new private key
|
|
39
|
+
const privateKey = new tls.PrivateKey(`${domainName}_private_key`, {
|
|
40
|
+
algorithm,
|
|
41
|
+
});
|
|
42
|
+
//create new CSR
|
|
43
|
+
const csr = new tls.CertRequest(`${domainName}_csr`, {
|
|
44
|
+
privateKeyPem: privateKey.privateKeyPem,
|
|
45
|
+
subject: {
|
|
46
|
+
commonName: domainName,
|
|
47
|
+
organization: StackEnv_1.organization,
|
|
48
|
+
},
|
|
49
|
+
dnsNames: [domainName],
|
|
50
|
+
});
|
|
51
|
+
//Create a new Cert
|
|
52
|
+
const cert = new cf.OriginCaCertificate(`${domainName}_original_cert`, {
|
|
53
|
+
csr: csr.certRequestPem,
|
|
54
|
+
hostnames: [domainName, `*.${domainName}`, `www.${domainName}`],
|
|
55
|
+
requestType: 'origin-rsa',
|
|
56
|
+
requestedValidity: 5475,
|
|
57
|
+
}, { provider, protect: lock });
|
|
58
|
+
//Get CA cert
|
|
59
|
+
const ca = await cf.getOriginCaRootCertificate({
|
|
60
|
+
algorithm,
|
|
61
|
+
}, { provider });
|
|
62
|
+
//Store to vault
|
|
63
|
+
if (vaultInfo) {
|
|
64
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
65
|
+
name: vaultNames.privateKeyName,
|
|
66
|
+
value: privateKey.privateKeyPem,
|
|
67
|
+
contentType: `cloudflare ${domainName} privateKey`,
|
|
68
|
+
vaultInfo,
|
|
69
|
+
});
|
|
70
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
71
|
+
name: vaultNames.certName,
|
|
72
|
+
value: cert.certificate,
|
|
73
|
+
contentType: `cloudflare ${domainName} certificate`,
|
|
74
|
+
vaultInfo,
|
|
75
|
+
});
|
|
76
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
77
|
+
name: vaultNames.caName,
|
|
78
|
+
value: ca.certPem,
|
|
79
|
+
contentType: `cloudflare ${domainName} CA`,
|
|
80
|
+
vaultInfo,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//return results
|
|
84
|
+
return {
|
|
85
|
+
privateKey: privateKey.privateKeyPem,
|
|
86
|
+
cert: cert.certificate,
|
|
87
|
+
ca: ca.certPem,
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2VydENyZWF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvQ2xvdWRGbGFyZS9DZXJ0Q3JlYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsb0RBQXFEO0FBQ3JELHlDQUF5QztBQUV6Qyw4REFBOEQ7QUFDOUQsa0RBQWtEO0FBU2xELE1BQU0sYUFBYSxHQUFHLENBQUMsVUFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM3QyxjQUFjLEVBQUUsY0FBYyxVQUFVLGFBQWE7SUFDckQsUUFBUSxFQUFFLGNBQWMsVUFBVSxPQUFPO0lBQ3pDLE1BQU0sRUFBRSxjQUFjLFVBQVUsS0FBSztDQUN0QyxDQUFDLENBQUM7QUFFSSxNQUFNLHVCQUF1QixHQUFHLEtBQUssRUFBRSxFQUM1QyxVQUFVLEVBQ1YsU0FBUyxHQUM4RCxFQUFFLEVBQUU7SUFDM0UsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTdDLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDO1FBQzNCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUTtRQUN6QixTQUFTO0tBQ1YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGtCQUFTLEVBQUM7UUFDekIsSUFBSSxFQUFFLFVBQVUsQ0FBQyxNQUFNO1FBQ3ZCLFNBQVM7S0FDVixDQUFDLENBQUM7SUFDSCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsa0JBQVMsRUFBQztRQUN6QixJQUFJLEVBQUUsVUFBVSxDQUFDLGNBQWM7UUFDL0IsU0FBUztLQUNWLENBQUMsQ0FBQztJQUVILE9BQU87UUFDTCxVQUFVLEVBQUUsRUFBRyxDQUFDLEtBQU07UUFDdEIsSUFBSSxFQUFFLElBQUssQ0FBQyxLQUFNO1FBQ2xCLEVBQUUsRUFBRSxFQUFHLENBQUMsS0FBTTtLQUNmLENBQUM7QUFDSixDQUFDLENBQUM7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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { K8sArgs } from '../types';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import * as cf from '@pulumi/cloudflare';
|
|
4
|
+
import { KeyVaultInfo } from '../../types';
|
|
5
|
+
export interface CloudFlareCertImportProps extends K8sArgs {
|
|
6
|
+
namespaces: pulumi.Input<string>[];
|
|
7
|
+
cloudflare: Array<{
|
|
8
|
+
apiKey?: pulumi.Input<string>;
|
|
9
|
+
provider?: cf.Provider;
|
|
10
|
+
zones: string[];
|
|
11
|
+
}>;
|
|
12
|
+
/**Load existing cert from Key Vault*/
|
|
13
|
+
certExisted?: boolean;
|
|
14
|
+
vaultInfo?: KeyVaultInfo;
|
|
15
|
+
}
|
|
16
|
+
declare const _default: ({ namespaces, cloudflare, certExisted, vaultInfo, ...others }: CloudFlareCertImportProps) => Promise<Promise<pulumi.Output<pulumi.Output<import("@pulumi/kubernetes/core/v1/secret").Secret>[]>>[][]>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const pulumi = require("@pulumi/pulumi");
|
|
4
|
+
const cf = require("@pulumi/cloudflare");
|
|
5
|
+
const CertCreator_1 = require("./CertCreator");
|
|
6
|
+
const KsCertSecret_1 = require("../Core/KsCertSecret");
|
|
7
|
+
const CertHelper_1 = require("../CertHelper");
|
|
8
|
+
exports.default = async ({ namespaces, cloudflare, certExisted, vaultInfo, ...others }) => await Promise.all(cloudflare.map((c, i) => {
|
|
9
|
+
if (!c.apiKey && !c.provider)
|
|
10
|
+
throw new Error('Either CloudFlare API Key or Provider must be provided.');
|
|
11
|
+
const cfProvider = c.provider ??
|
|
12
|
+
new cf.Provider(`cloudflare_${i}`, {
|
|
13
|
+
apiToken: c.apiKey,
|
|
14
|
+
});
|
|
15
|
+
return c.zones.map(async (z) => {
|
|
16
|
+
const cert = certExisted && vaultInfo
|
|
17
|
+
? await (0, CertCreator_1.getCloudflareOriginCert)({ domainName: z, vaultInfo })
|
|
18
|
+
: await (0, CertCreator_1.default)({
|
|
19
|
+
domainName: z,
|
|
20
|
+
vaultInfo,
|
|
21
|
+
provider: cfProvider,
|
|
22
|
+
});
|
|
23
|
+
// const ns = c.namespaces ?? namespaces;
|
|
24
|
+
// if (!ns || !Array.isArray(ns))
|
|
25
|
+
// throw new Error(`The namespaces of ${z} is invalid.`);
|
|
26
|
+
return pulumi.all([namespaces]).apply(([ns]) => ns.map((n) => (0, KsCertSecret_1.default)({
|
|
27
|
+
name: (0, CertHelper_1.getTlsName)(z, false),
|
|
28
|
+
namespace: n,
|
|
29
|
+
certInfo: cert,
|
|
30
|
+
...others,
|
|
31
|
+
})));
|
|
32
|
+
});
|
|
33
|
+
}));
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2VydEltcG9ydHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvQ2xvdWRGbGFyZS9DZXJ0SW1wb3J0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHlDQUF5QztBQUN6Qyx5Q0FBeUM7QUFDekMsK0NBQXFFO0FBQ3JFLHVEQUFnRDtBQUNoRCw4Q0FBMkM7QUFnQjNDLGtCQUFlLEtBQUssRUFBRSxFQUNwQixVQUFVLEVBQ1YsVUFBVSxFQUNWLFdBQVcsRUFDWCxTQUFTLEVBQ1QsR0FBRyxNQUFNLEVBQ2lCLEVBQUUsRUFBRSxDQUM5QixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtJQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQ2IseURBQXlELENBQzFELENBQUM7SUFFSixNQUFNLFVBQVUsR0FDZCxDQUFDLENBQUMsUUFBUTtRQUNWLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFO1lBQ2pDLFFBQVEsRUFBRSxDQUFDLENBQUMsTUFBTTtTQUNuQixDQUFDLENBQUM7SUFFTCxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUM3QixNQUFNLElBQUksR0FDUixXQUFXLElBQUksU0FBUztZQUN0QixDQUFDLENBQUMsTUFBTSxJQUFBLHFDQUF1QixFQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUM3RCxDQUFDLENBQUMsTUFBTSxJQUFBLHFCQUFXLEVBQUM7Z0JBQ2hCLFVBQVUsRUFBRSxDQUFDO2dCQUNiLFNBQVM7Z0JBQ1QsUUFBUSxFQUFFLFVBQVU7YUFDckIsQ0FBQyxDQUFDO1FBRVQseUNBQXlDO1FBQ3pDLGlDQUFpQztRQUNqQywyREFBMkQ7UUFFM0QsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDN0MsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ1gsSUFBQSxzQkFBWSxFQUFDO1lBQ1gsSUFBSSxFQUFFLElBQUEsdUJBQVUsRUFBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQzFCLFNBQVMsRUFBRSxDQUFDO1lBQ1osUUFBUSxFQUFFLElBQUk7WUFDZCxHQUFHLE1BQU07U0FDVixDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIn0=
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
2
|
+
import { Input, Resource } from '@pulumi/pulumi';
|
|
3
|
+
type CloudFlareProps = {
|
|
4
|
+
apiKey: Input<string>;
|
|
5
|
+
zones: Array<{
|
|
6
|
+
id: Input<string>;
|
|
7
|
+
proxied?: boolean;
|
|
8
|
+
aRecords: Array<{
|
|
9
|
+
name: string;
|
|
10
|
+
proxied?: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
export interface DynamicDnsProps {
|
|
15
|
+
namespace: Input<string>;
|
|
16
|
+
cloudFlare: Array<CloudFlareProps>;
|
|
17
|
+
provider: k8s.Provider;
|
|
18
|
+
dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
|
|
19
|
+
}
|
|
20
|
+
declare const _default: ({ namespace, cloudFlare, ...others }: DynamicDnsProps) => void;
|
|
21
|
+
export default _default;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Deployment_1 = require("../Deployment");
|
|
4
|
+
exports.default = ({ namespace, cloudFlare = [], ...others }) => {
|
|
5
|
+
const name = 'cloudflare-ddns';
|
|
6
|
+
const image = 'baoduy2412/cloudflare-ddns:latest';
|
|
7
|
+
const configMap = {};
|
|
8
|
+
const secrets = {};
|
|
9
|
+
cloudFlare.forEach((c, ci) => {
|
|
10
|
+
secrets[`Cloudflare__${ci}__ApiKey`] = c.apiKey;
|
|
11
|
+
c.zones.forEach((z, zi) => {
|
|
12
|
+
configMap[`Cloudflare__${ci}__Zones__${zi}__Id`] = z.id;
|
|
13
|
+
if (z.proxied)
|
|
14
|
+
configMap[`Cloudflare__${ci}__Zones__${zi}__Proxied`] = z.proxied
|
|
15
|
+
? 'true'
|
|
16
|
+
: 'false';
|
|
17
|
+
z.aRecords.forEach((r, rI) => {
|
|
18
|
+
configMap[`Cloudflare__${ci}__Zones__${zi}__ARecords__${rI}__Name`] =
|
|
19
|
+
r.name;
|
|
20
|
+
if (r.proxied)
|
|
21
|
+
configMap[`Cloudflare__${ci}__Zones__${zi}__ARecords__${rI}__Proxied`] = r.proxied ? 'true' : 'false';
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
(0, Deployment_1.default)({
|
|
26
|
+
name,
|
|
27
|
+
namespace,
|
|
28
|
+
configMap,
|
|
29
|
+
secrets,
|
|
30
|
+
podConfig: {
|
|
31
|
+
ports: { http: 8080 },
|
|
32
|
+
image,
|
|
33
|
+
resources: { requests: { memory: '1Mi', cpu: '1m' } },
|
|
34
|
+
},
|
|
35
|
+
deploymentConfig: { replicas: 1 },
|
|
36
|
+
...others,
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRHluYW1pY0Rucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9DbG91ZEZsYXJlL0R5bmFtaWNEbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSw4Q0FBdUM7QUFtQnZDLGtCQUFlLENBQUMsRUFDZCxTQUFTLEVBQ1QsVUFBVSxHQUFHLEVBQUUsRUFFZixHQUFHLE1BQU0sRUFDTyxFQUFFLEVBQUU7SUFDcEIsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFDL0IsTUFBTSxLQUFLLEdBQUcsbUNBQW1DLENBQUM7SUFFbEQsTUFBTSxTQUFTLEdBQWtDLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBa0MsRUFBRSxDQUFDO0lBRWxELFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDM0IsT0FBTyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBRWhELENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO1lBQ3hCLFNBQVMsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFFeEQsSUFBSSxDQUFDLENBQUMsT0FBTztnQkFDWCxTQUFTLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTztvQkFDL0QsQ0FBQyxDQUFDLE1BQU07b0JBQ1IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUVkLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO2dCQUMzQixTQUFTLENBQUMsZUFBZSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsUUFBUSxDQUFDO29CQUNqRSxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUVULElBQUksQ0FBQyxDQUFDLE9BQU87b0JBQ1gsU0FBUyxDQUNQLGVBQWUsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FDNUQsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLG9CQUFVLEVBQUM7UUFDVCxJQUFJO1FBQ0osU0FBUztRQUVULFNBQVM7UUFDVCxPQUFPO1FBRVAsU0FBUyxFQUFFO1lBQ1QsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNyQixLQUFLO1lBQ0wsU0FBUyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7U0FDdEQ7UUFDRCxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUU7UUFFakMsR0FBRyxNQUFNO0tBQ1YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DefaultK8sArgs } from '../types';
|
|
2
|
+
import { Input } from '@pulumi/pulumi';
|
|
3
|
+
import * as k8s from '@pulumi/kubernetes';
|
|
4
|
+
export type TunnelHelmParameters = {
|
|
5
|
+
account: Input<string>;
|
|
6
|
+
tunnelName: Input<string>;
|
|
7
|
+
tunnelId: Input<string>;
|
|
8
|
+
secret: Input<string>;
|
|
9
|
+
enableWarp?: Input<boolean>;
|
|
10
|
+
};
|
|
11
|
+
export interface TunnelHelmProps extends Omit<DefaultK8sArgs, 'name'> {
|
|
12
|
+
name?: string;
|
|
13
|
+
replicas?: number;
|
|
14
|
+
parameters: TunnelHelmParameters;
|
|
15
|
+
}
|
|
16
|
+
declare const _default: ({ name, namespace, parameters, replicas, ...others }: TunnelHelmProps) => k8s.helm.v3.Chart;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const k8s = require("@pulumi/kubernetes");
|
|
4
|
+
exports.default = ({ name = 'tunnel', namespace, parameters, replicas = 2, ...others }) => new k8s.helm.v3.Chart(name, {
|
|
5
|
+
namespace,
|
|
6
|
+
chart: 'cloudflare-tunnel',
|
|
7
|
+
fetchOpts: { repo: 'https://cloudflare.github.io/helm-charts' },
|
|
8
|
+
values: {
|
|
9
|
+
cloudflare: parameters,
|
|
10
|
+
},
|
|
11
|
+
}, others);
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHVubmVsLUhlbG0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvQ2xvdWRGbGFyZS9UdW5uZWwtSGVsbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLDBDQUEwQztBQWdCMUMsa0JBQWUsQ0FBQyxFQUNkLElBQUksR0FBRyxRQUFRLEVBQ2YsU0FBUyxFQUVULFVBQVUsRUFDVixRQUFRLEdBQUcsQ0FBQyxFQUNaLEdBQUcsTUFBTSxFQUNPLEVBQUUsRUFBRSxDQUNwQixJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FDbkIsSUFBSSxFQUNKO0lBQ0UsU0FBUztJQUNULEtBQUssRUFBRSxtQkFBbUI7SUFDMUIsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLDBDQUEwQyxFQUFFO0lBRS9ELE1BQU0sRUFBRTtRQUNOLFVBQVUsRUFBRSxVQUFVO0tBQ3ZCO0NBQ0YsRUFDRCxNQUFNLENBQ1AsQ0FBQyJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DefaultK8sArgs } from '../types';
|
|
2
|
+
import { Input } from '@pulumi/pulumi';
|
|
3
|
+
export type TunnelParameters = {
|
|
4
|
+
token: Input<string>;
|
|
5
|
+
enableLiveness?: boolean;
|
|
6
|
+
enableMetrics?: boolean;
|
|
7
|
+
tcp?: Array<{
|
|
8
|
+
host: string;
|
|
9
|
+
service: string;
|
|
10
|
+
port: number;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
export interface TunnelProps extends Omit<DefaultK8sArgs, 'name'> {
|
|
14
|
+
name?: string;
|
|
15
|
+
replicas?: number;
|
|
16
|
+
parameters: TunnelParameters;
|
|
17
|
+
}
|
|
18
|
+
declare const _default: ({ name, namespace, parameters, replicas, ...others }: TunnelProps) => {
|
|
19
|
+
deployment: import("../kx").Deployment | undefined;
|
|
20
|
+
service: import("../kx").Service | undefined;
|
|
21
|
+
jobs: (import("@pulumi/kubernetes/batch/v1/cronJob").CronJob | import("../kx").Job)[] | undefined;
|
|
22
|
+
};
|
|
23
|
+
export default _default;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const Deployment_1 = require("../Deployment");
|
|
4
|
+
exports.default = ({ name = 'tunnel', namespace, parameters, replicas = 2, ...others }) => {
|
|
5
|
+
const tcpArgs = parameters.tcp
|
|
6
|
+
? parameters.tcp.flatMap((t) => [
|
|
7
|
+
'--hostname',
|
|
8
|
+
t.host,
|
|
9
|
+
'--url',
|
|
10
|
+
`tcp://${t.service}:${t.port}`,
|
|
11
|
+
])
|
|
12
|
+
: [];
|
|
13
|
+
const args = [
|
|
14
|
+
'tunnel',
|
|
15
|
+
...tcpArgs,
|
|
16
|
+
'--no-autoupdate',
|
|
17
|
+
'run',
|
|
18
|
+
'--token',
|
|
19
|
+
'$(token)',
|
|
20
|
+
// '--config',
|
|
21
|
+
// '/etc/cloudflared/config/config.yaml',
|
|
22
|
+
];
|
|
23
|
+
if (parameters.enableMetrics) {
|
|
24
|
+
args.push('--metrics', '0.0.0.0:8081');
|
|
25
|
+
}
|
|
26
|
+
const tunnel = (0, Deployment_1.default)({
|
|
27
|
+
name,
|
|
28
|
+
namespace,
|
|
29
|
+
secrets: { token: parameters.token },
|
|
30
|
+
podConfig: {
|
|
31
|
+
ports: { http: 3000 },
|
|
32
|
+
image: 'cloudflare/cloudflared:latest',
|
|
33
|
+
podSecurityContext: { readOnlyRootFilesystem: true },
|
|
34
|
+
probes: {
|
|
35
|
+
liveness: parameters.enableLiveness
|
|
36
|
+
? {
|
|
37
|
+
httpGet: '/ready',
|
|
38
|
+
port: 8081,
|
|
39
|
+
initialDelaySeconds: 10,
|
|
40
|
+
periodSeconds: 10,
|
|
41
|
+
failureThreshold: 3,
|
|
42
|
+
}
|
|
43
|
+
: undefined,
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
deploymentConfig: {
|
|
47
|
+
replicas,
|
|
48
|
+
args,
|
|
49
|
+
},
|
|
50
|
+
...others,
|
|
51
|
+
});
|
|
52
|
+
return tunnel;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHVubmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0t1YmVYL0Nsb3VkRmxhcmUvVHVubmVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsOENBQXVDO0FBaUJ2QyxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxHQUFHLFFBQVEsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLFFBQVEsR0FBRyxDQUFDLEVBRVosR0FBRyxNQUFNLEVBQ0csRUFBRSxFQUFFO0lBQ2hCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHO1FBQzVCLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsWUFBWTtZQUNaLENBQUMsQ0FBQyxJQUFJO1lBQ04sT0FBTztZQUNQLFNBQVMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFO1NBQy9CLENBQUM7UUFDSixDQUFDLENBQUMsRUFBRSxDQUFDO0lBRVAsTUFBTSxJQUFJLEdBQUc7UUFDWCxRQUFRO1FBQ1IsR0FBRyxPQUFPO1FBQ1YsaUJBQWlCO1FBQ2pCLEtBQUs7UUFDTCxTQUFTO1FBQ1QsVUFBVTtRQUNWLGNBQWM7UUFDZCx5Q0FBeUM7S0FDMUMsQ0FBQztJQUVGLElBQUksVUFBVSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFBLG9CQUFVLEVBQUM7UUFDeEIsSUFBSTtRQUNKLFNBQVM7UUFFVCxPQUFPLEVBQUUsRUFBRSxLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUssRUFBRTtRQUVwQyxTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3JCLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsa0JBQWtCLEVBQUUsRUFBRSxzQkFBc0IsRUFBRSxJQUFJLEVBQUU7WUFDcEQsTUFBTSxFQUFFO2dCQUNOLFFBQVEsRUFBRSxVQUFVLENBQUMsY0FBYztvQkFDakMsQ0FBQyxDQUFDO3dCQUNFLE9BQU8sRUFBRSxRQUFRO3dCQUNqQixJQUFJLEVBQUUsSUFBSTt3QkFDVixtQkFBbUIsRUFBRSxFQUFFO3dCQUN2QixhQUFhLEVBQUUsRUFBRTt3QkFDakIsZ0JBQWdCLEVBQUUsQ0FBQztxQkFDcEI7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtTQUNGO1FBRUQsZ0JBQWdCLEVBQUU7WUFDaEIsUUFBUTtZQUNSLElBQUk7U0FDTDtRQUVELEdBQUcsTUFBTTtLQUNWLENBQUMsQ0FBQztJQUVILE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { K8sArgs } from '../types';
|
|
2
|
+
import { DynamicDnsProps } from './DynamicDns';
|
|
3
|
+
import { TunnelProps } from './Tunnel';
|
|
4
|
+
import { TunnelHelmProps } from './Tunnel-Helm';
|
|
5
|
+
import { CloudFlareCertImportProps } from './CertImports';
|
|
6
|
+
interface Props extends K8sArgs {
|
|
7
|
+
namespace?: string;
|
|
8
|
+
certImports?: Omit<CloudFlareCertImportProps, 'namespace' | 'provider' | 'dependsOn'>;
|
|
9
|
+
dynamicDns?: Omit<DynamicDnsProps, 'namespace' | 'provider' | 'dependsOn'>;
|
|
10
|
+
tunnel?: Omit<TunnelProps | TunnelHelmProps, 'namespace' | 'provider' | 'dependsOn'>;
|
|
11
|
+
}
|
|
12
|
+
declare const _default: ({ namespace, dynamicDns, tunnel, certImports, ...others }: Props) => void;
|
|
13
|
+
export default _default;
|