@drunk-pulumi/azure 0.0.19 → 0.0.21
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 +0 -18
- package/Aks/Helper.js +50 -32
- package/Common/AutoTags.js +2 -1
- package/package.json +3 -6
- package/KubeX/AcrSecret.d.ts +0 -15
- package/KubeX/AcrSecret.js +0 -31
- package/KubeX/Apps/AstroPage.d.ts +0 -12
- package/KubeX/Apps/AstroPage.js +0 -33
- package/KubeX/Apps/KafKa.d.ts +0 -6
- package/KubeX/Apps/KafKa.js +0 -13
- package/KubeX/Apps/Nobelium.d.ts +0 -13
- package/KubeX/Apps/Nobelium.js +0 -37
- package/KubeX/Apps/Wikijs.d.ts +0 -30
- package/KubeX/Apps/Wikijs.js +0 -54
- package/KubeX/Apps/WordPress.d.ts +0 -24
- package/KubeX/Apps/WordPress.js +0 -55
- package/KubeX/Apps/YarpProxy/index.d.ts +0 -17
- package/KubeX/Apps/YarpProxy/index.js +0 -107
- package/KubeX/Apps/YarpProxy/type.d.ts +0 -55
- package/KubeX/Apps/YarpProxy/type.js +0 -3
- package/KubeX/CertHelper.d.ts +0 -1
- package/KubeX/CertHelper.js +0 -9
- package/KubeX/CertImports.d.ts +0 -19
- package/KubeX/CertImports.js +0 -70
- package/KubeX/CloudFlare/CertCreator.d.ts +0 -19
- package/KubeX/CloudFlare/CertCreator.js +0 -90
- package/KubeX/CloudFlare/CertImports.d.ts +0 -17
- package/KubeX/CloudFlare/CertImports.js +0 -34
- package/KubeX/CloudFlare/DynamicDns.d.ts +0 -21
- package/KubeX/CloudFlare/DynamicDns.js +0 -39
- package/KubeX/CloudFlare/Tunnel-Helm.d.ts +0 -17
- package/KubeX/CloudFlare/Tunnel-Helm.js +0 -12
- package/KubeX/CloudFlare/Tunnel.d.ts +0 -23
- package/KubeX/CloudFlare/Tunnel.js +0 -54
- package/KubeX/CloudFlare/index.d.ts +0 -13
- package/KubeX/CloudFlare/index.js +0 -36
- package/KubeX/Clusters/K3s/AutoUpgradeController/index.d.ts +0 -6
- package/KubeX/Clusters/K3s/AutoUpgradeController/index.js +0 -60
- package/KubeX/ConfigSecret.d.ts +0 -24
- package/KubeX/ConfigSecret.js +0 -38
- package/KubeX/Core/CertManager/index.d.ts +0 -24
- package/KubeX/Core/CertManager/index.js +0 -96
- package/KubeX/Core/KsCertSecret.d.ts +0 -12
- package/KubeX/Core/KsCertSecret.js +0 -22
- package/KubeX/Core/KsSecret.d.ts +0 -9
- package/KubeX/Core/KsSecret.js +0 -12
- package/KubeX/Core/LoadBalancer/MetalLB.d.ts +0 -7
- package/KubeX/Core/LoadBalancer/MetalLB.js +0 -21
- package/KubeX/Core/Monitoring/index.d.ts +0 -22
- package/KubeX/Core/Monitoring/index.js +0 -322
- package/KubeX/Core/Namespace.d.ts +0 -12
- package/KubeX/Core/Namespace.js +0 -41
- package/KubeX/Core/Nginx/index.d.ts +0 -60
- package/KubeX/Core/Nginx/index.js +0 -109
- package/KubeX/Core/OAuthProxy/index.d.ts +0 -0
- package/KubeX/Core/OAuthProxy/index.js +0 -3
- package/KubeX/Core/ResourceQuota.d.ts +0 -12
- package/KubeX/Core/ResourceQuota.js +0 -13
- package/KubeX/Core/SecurityRules.d.ts +0 -34
- package/KubeX/Core/SecurityRules.js +0 -93
- package/KubeX/Core/StorageClass/azureBlob.d.ts +0 -20
- package/KubeX/Core/StorageClass/azureBlob.js +0 -77
- package/KubeX/Core/StorageClass/azureFile.d.ts +0 -17
- package/KubeX/Core/StorageClass/azureFile.js +0 -45
- package/KubeX/Core/StorageClass/index.d.ts +0 -13
- package/KubeX/Core/StorageClass/index.js +0 -25
- package/KubeX/Core/index.d.ts +0 -57
- package/KubeX/Core/index.js +0 -94
- package/KubeX/Databases/MariaDb.d.ts +0 -11
- package/KubeX/Databases/MariaDb.js +0 -39
- package/KubeX/Databases/MySql.V2.d.ts +0 -11
- package/KubeX/Databases/MySql.V2.js +0 -40
- package/KubeX/Databases/MySql.d.ts +0 -13
- package/KubeX/Databases/MySql.js +0 -55
- package/KubeX/Databases/PostgreSql/PostgreSQL-HA.d.ts +0 -10
- package/KubeX/Databases/PostgreSql/PostgreSQL-HA.js +0 -47
- package/KubeX/Databases/PostgreSql/PostgreSQL.d.ts +0 -10
- package/KubeX/Databases/PostgreSql/PostgreSQL.js +0 -51
- package/KubeX/Databases/PostgreSql/PostgreSql.v1.d.ts +0 -13
- package/KubeX/Databases/PostgreSql/PostgreSql.v1.js +0 -56
- package/KubeX/Databases/PostgreSql/index.d.ts +0 -17
- package/KubeX/Databases/PostgreSql/index.js +0 -6
- package/KubeX/Databases/RedisCache.d.ts +0 -14
- package/KubeX/Databases/RedisCache.js +0 -65
- package/KubeX/Databases/SqlServer.d.ts +0 -15
- package/KubeX/Databases/SqlServer.js +0 -77
- package/KubeX/Deployment/PodAutoscaler.d.ts +0 -14
- package/KubeX/Deployment/PodAutoscaler.js +0 -51
- package/KubeX/Deployment/index.d.ts +0 -136
- package/KubeX/Deployment/index.js +0 -306
- package/KubeX/Helpers.d.ts +0 -4
- package/KubeX/Helpers.js +0 -17
- package/KubeX/Ingress/AppGatewayIngress.d.ts +0 -2
- package/KubeX/Ingress/AppGatewayIngress.js +0 -4
- package/KubeX/Ingress/Conts.d.ts +0 -13
- package/KubeX/Ingress/Conts.js +0 -18
- package/KubeX/Ingress/NginxIngress.d.ts +0 -3
- package/KubeX/Ingress/NginxIngress.js +0 -186
- package/KubeX/Ingress/NginxProxy.d.ts +0 -21
- package/KubeX/Ingress/NginxProxy.js +0 -43
- package/KubeX/Ingress/TraefikIngress/CustomHeader.d.ts +0 -15
- package/KubeX/Ingress/TraefikIngress/CustomHeader.js +0 -15
- package/KubeX/Ingress/TraefikIngress/index.d.ts +0 -11
- package/KubeX/Ingress/TraefikIngress/index.js +0 -95
- package/KubeX/Ingress/index.d.ts +0 -5
- package/KubeX/Ingress/index.js +0 -12
- package/KubeX/Ingress/type.d.ts +0 -82
- package/KubeX/Ingress/type.js +0 -3
- package/KubeX/Providers/index.d.ts +0 -8
- package/KubeX/Providers/index.js +0 -15
- package/KubeX/Storage/Longhorn/index.d.ts +0 -15
- package/KubeX/Storage/Longhorn/index.js +0 -54
- package/KubeX/Storage/index.d.ts +0 -25
- package/KubeX/Storage/index.js +0 -79
- package/KubeX/Tools/AWS/LocalStack.d.ts +0 -7
- package/KubeX/Tools/AWS/LocalStack.js +0 -29
- package/KubeX/Tools/AWS/S3.d.ts +0 -6
- package/KubeX/Tools/AWS/S3.js +0 -44
- package/KubeX/Tools/AWS/index.d.ts +0 -7
- package/KubeX/Tools/AWS/index.js +0 -14
- package/KubeX/Tools/AppHealthzMonitor.d.ts +0 -18
- package/KubeX/Tools/AppHealthzMonitor.js +0 -52
- package/KubeX/Tools/ArgoCD/index.d.ts +0 -17
- package/KubeX/Tools/ArgoCD/index.js +0 -131
- package/KubeX/Tools/Dapr/Storage.d.ts +0 -66
- package/KubeX/Tools/Dapr/Storage.js +0 -70
- package/KubeX/Tools/Dapr/index.d.ts +0 -10
- package/KubeX/Tools/Dapr/index.js +0 -31
- package/KubeX/Tools/Echo-App.d.ts +0 -3
- package/KubeX/Tools/Echo-App.js +0 -21
- package/KubeX/Tools/Gitea/GiteaRepo.d.ts +0 -72
- package/KubeX/Tools/Gitea/GiteaRepo.js +0 -184
- package/KubeX/Tools/Gitea/GiteaRunner.d.ts +0 -11
- package/KubeX/Tools/Gitea/GiteaRunner.js +0 -37
- package/KubeX/Tools/Gitea/GiteaRunner.v1.d.ts +0 -11
- package/KubeX/Tools/Gitea/GiteaRunner.v1.js +0 -123
- package/KubeX/Tools/HarborRepo.d.ts +0 -29
- package/KubeX/Tools/HarborRepo.js +0 -78
- package/KubeX/Tools/HelloWorld.d.ts +0 -3
- package/KubeX/Tools/HelloWorld.js +0 -21
- package/KubeX/Tools/KubeCleanup.d.ts +0 -9
- package/KubeX/Tools/KubeCleanup.js +0 -34
- package/KubeX/Tools/NoIp.d.ts +0 -13
- package/KubeX/Tools/NoIp.js +0 -24
- package/KubeX/Tools/OpenLDAP/index.d.ts +0 -12
- package/KubeX/Tools/OpenLDAP/index.js +0 -56
- package/KubeX/Tools/OutlineVpn/index.d.ts +0 -25
- package/KubeX/Tools/OutlineVpn/index.js +0 -256
- package/KubeX/Tools/SqlPad.d.ts +0 -29
- package/KubeX/Tools/SqlPad.js +0 -133
- package/KubeX/Tools/ToolPod.d.ts +0 -10
- package/KubeX/Tools/ToolPod.js +0 -40
- package/KubeX/Tools/UptimeKuma.d.ts +0 -6
- package/KubeX/Tools/UptimeKuma.js +0 -38
- package/KubeX/Tools/index.d.ts +0 -27
- package/KubeX/Tools/index.js +0 -35
- package/KubeX/VairableResolvers/index.d.ts +0 -15
- package/KubeX/VairableResolvers/index.js +0 -49
- package/KubeX/kx/index.d.ts +0 -114
- package/KubeX/kx/index.js +0 -423
- package/KubeX/types.d.ts +0 -49
- package/KubeX/types.js +0 -3
|
@@ -1,107 +0,0 @@
|
|
|
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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
|
|
@@ -1,55 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9LdWJlWC9BcHBzL1lhcnBQcm94eS90eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
package/KubeX/CertHelper.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getTlsName: (domain: string, enableCertIssuer: boolean) => string;
|
package/KubeX/CertHelper.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
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=
|
package/KubeX/CertImports.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
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 {};
|
package/KubeX/CertImports.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
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==
|
|
@@ -1,19 +0,0 @@
|
|
|
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;
|
|
@@ -1,90 +0,0 @@
|
|
|
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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
|
|
@@ -1,17 +0,0 @@
|
|
|
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;
|
|
@@ -1,34 +0,0 @@
|
|
|
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=
|
|
@@ -1,21 +0,0 @@
|
|
|
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;
|
|
@@ -1,39 +0,0 @@
|
|
|
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=
|
|
@@ -1,17 +0,0 @@
|
|
|
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;
|
|
@@ -1,12 +0,0 @@
|
|
|
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
|
|
@@ -1,23 +0,0 @@
|
|
|
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;
|
|
@@ -1,54 +0,0 @@
|
|
|
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
|
|
@@ -1,13 +0,0 @@
|
|
|
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;
|