@drunk-pulumi/azure 0.0.19 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/Aks/Helper.d.ts +0 -18
  2. package/Aks/Helper.js +50 -32
  3. package/package.json +3 -6
  4. package/KubeX/AcrSecret.d.ts +0 -15
  5. package/KubeX/AcrSecret.js +0 -31
  6. package/KubeX/Apps/AstroPage.d.ts +0 -12
  7. package/KubeX/Apps/AstroPage.js +0 -33
  8. package/KubeX/Apps/KafKa.d.ts +0 -6
  9. package/KubeX/Apps/KafKa.js +0 -13
  10. package/KubeX/Apps/Nobelium.d.ts +0 -13
  11. package/KubeX/Apps/Nobelium.js +0 -37
  12. package/KubeX/Apps/Wikijs.d.ts +0 -30
  13. package/KubeX/Apps/Wikijs.js +0 -54
  14. package/KubeX/Apps/WordPress.d.ts +0 -24
  15. package/KubeX/Apps/WordPress.js +0 -55
  16. package/KubeX/Apps/YarpProxy/index.d.ts +0 -17
  17. package/KubeX/Apps/YarpProxy/index.js +0 -107
  18. package/KubeX/Apps/YarpProxy/type.d.ts +0 -55
  19. package/KubeX/Apps/YarpProxy/type.js +0 -3
  20. package/KubeX/CertHelper.d.ts +0 -1
  21. package/KubeX/CertHelper.js +0 -9
  22. package/KubeX/CertImports.d.ts +0 -19
  23. package/KubeX/CertImports.js +0 -70
  24. package/KubeX/CloudFlare/CertCreator.d.ts +0 -19
  25. package/KubeX/CloudFlare/CertCreator.js +0 -90
  26. package/KubeX/CloudFlare/CertImports.d.ts +0 -17
  27. package/KubeX/CloudFlare/CertImports.js +0 -34
  28. package/KubeX/CloudFlare/DynamicDns.d.ts +0 -21
  29. package/KubeX/CloudFlare/DynamicDns.js +0 -39
  30. package/KubeX/CloudFlare/Tunnel-Helm.d.ts +0 -17
  31. package/KubeX/CloudFlare/Tunnel-Helm.js +0 -12
  32. package/KubeX/CloudFlare/Tunnel.d.ts +0 -23
  33. package/KubeX/CloudFlare/Tunnel.js +0 -54
  34. package/KubeX/CloudFlare/index.d.ts +0 -13
  35. package/KubeX/CloudFlare/index.js +0 -36
  36. package/KubeX/Clusters/K3s/AutoUpgradeController/index.d.ts +0 -6
  37. package/KubeX/Clusters/K3s/AutoUpgradeController/index.js +0 -60
  38. package/KubeX/ConfigSecret.d.ts +0 -24
  39. package/KubeX/ConfigSecret.js +0 -38
  40. package/KubeX/Core/CertManager/index.d.ts +0 -24
  41. package/KubeX/Core/CertManager/index.js +0 -96
  42. package/KubeX/Core/KsCertSecret.d.ts +0 -12
  43. package/KubeX/Core/KsCertSecret.js +0 -22
  44. package/KubeX/Core/KsSecret.d.ts +0 -9
  45. package/KubeX/Core/KsSecret.js +0 -12
  46. package/KubeX/Core/LoadBalancer/MetalLB.d.ts +0 -7
  47. package/KubeX/Core/LoadBalancer/MetalLB.js +0 -21
  48. package/KubeX/Core/Monitoring/index.d.ts +0 -22
  49. package/KubeX/Core/Monitoring/index.js +0 -322
  50. package/KubeX/Core/Namespace.d.ts +0 -12
  51. package/KubeX/Core/Namespace.js +0 -41
  52. package/KubeX/Core/Nginx/index.d.ts +0 -60
  53. package/KubeX/Core/Nginx/index.js +0 -109
  54. package/KubeX/Core/OAuthProxy/index.d.ts +0 -0
  55. package/KubeX/Core/OAuthProxy/index.js +0 -3
  56. package/KubeX/Core/ResourceQuota.d.ts +0 -12
  57. package/KubeX/Core/ResourceQuota.js +0 -13
  58. package/KubeX/Core/SecurityRules.d.ts +0 -34
  59. package/KubeX/Core/SecurityRules.js +0 -93
  60. package/KubeX/Core/StorageClass/azureBlob.d.ts +0 -20
  61. package/KubeX/Core/StorageClass/azureBlob.js +0 -77
  62. package/KubeX/Core/StorageClass/azureFile.d.ts +0 -17
  63. package/KubeX/Core/StorageClass/azureFile.js +0 -45
  64. package/KubeX/Core/StorageClass/index.d.ts +0 -13
  65. package/KubeX/Core/StorageClass/index.js +0 -25
  66. package/KubeX/Core/index.d.ts +0 -57
  67. package/KubeX/Core/index.js +0 -94
  68. package/KubeX/Databases/MariaDb.d.ts +0 -11
  69. package/KubeX/Databases/MariaDb.js +0 -39
  70. package/KubeX/Databases/MySql.V2.d.ts +0 -11
  71. package/KubeX/Databases/MySql.V2.js +0 -40
  72. package/KubeX/Databases/MySql.d.ts +0 -13
  73. package/KubeX/Databases/MySql.js +0 -55
  74. package/KubeX/Databases/PostgreSql/PostgreSQL-HA.d.ts +0 -10
  75. package/KubeX/Databases/PostgreSql/PostgreSQL-HA.js +0 -47
  76. package/KubeX/Databases/PostgreSql/PostgreSQL.d.ts +0 -10
  77. package/KubeX/Databases/PostgreSql/PostgreSQL.js +0 -51
  78. package/KubeX/Databases/PostgreSql/PostgreSql.v1.d.ts +0 -13
  79. package/KubeX/Databases/PostgreSql/PostgreSql.v1.js +0 -56
  80. package/KubeX/Databases/PostgreSql/index.d.ts +0 -17
  81. package/KubeX/Databases/PostgreSql/index.js +0 -6
  82. package/KubeX/Databases/RedisCache.d.ts +0 -14
  83. package/KubeX/Databases/RedisCache.js +0 -65
  84. package/KubeX/Databases/SqlServer.d.ts +0 -15
  85. package/KubeX/Databases/SqlServer.js +0 -77
  86. package/KubeX/Deployment/PodAutoscaler.d.ts +0 -14
  87. package/KubeX/Deployment/PodAutoscaler.js +0 -51
  88. package/KubeX/Deployment/index.d.ts +0 -136
  89. package/KubeX/Deployment/index.js +0 -306
  90. package/KubeX/Helpers.d.ts +0 -4
  91. package/KubeX/Helpers.js +0 -17
  92. package/KubeX/Ingress/AppGatewayIngress.d.ts +0 -2
  93. package/KubeX/Ingress/AppGatewayIngress.js +0 -4
  94. package/KubeX/Ingress/Conts.d.ts +0 -13
  95. package/KubeX/Ingress/Conts.js +0 -18
  96. package/KubeX/Ingress/NginxIngress.d.ts +0 -3
  97. package/KubeX/Ingress/NginxIngress.js +0 -186
  98. package/KubeX/Ingress/NginxProxy.d.ts +0 -21
  99. package/KubeX/Ingress/NginxProxy.js +0 -43
  100. package/KubeX/Ingress/TraefikIngress/CustomHeader.d.ts +0 -15
  101. package/KubeX/Ingress/TraefikIngress/CustomHeader.js +0 -15
  102. package/KubeX/Ingress/TraefikIngress/index.d.ts +0 -11
  103. package/KubeX/Ingress/TraefikIngress/index.js +0 -95
  104. package/KubeX/Ingress/index.d.ts +0 -5
  105. package/KubeX/Ingress/index.js +0 -12
  106. package/KubeX/Ingress/type.d.ts +0 -82
  107. package/KubeX/Ingress/type.js +0 -3
  108. package/KubeX/Providers/index.d.ts +0 -8
  109. package/KubeX/Providers/index.js +0 -15
  110. package/KubeX/Storage/Longhorn/index.d.ts +0 -15
  111. package/KubeX/Storage/Longhorn/index.js +0 -54
  112. package/KubeX/Storage/index.d.ts +0 -25
  113. package/KubeX/Storage/index.js +0 -79
  114. package/KubeX/Tools/AWS/LocalStack.d.ts +0 -7
  115. package/KubeX/Tools/AWS/LocalStack.js +0 -29
  116. package/KubeX/Tools/AWS/S3.d.ts +0 -6
  117. package/KubeX/Tools/AWS/S3.js +0 -44
  118. package/KubeX/Tools/AWS/index.d.ts +0 -7
  119. package/KubeX/Tools/AWS/index.js +0 -14
  120. package/KubeX/Tools/AppHealthzMonitor.d.ts +0 -18
  121. package/KubeX/Tools/AppHealthzMonitor.js +0 -52
  122. package/KubeX/Tools/ArgoCD/index.d.ts +0 -17
  123. package/KubeX/Tools/ArgoCD/index.js +0 -131
  124. package/KubeX/Tools/Dapr/Storage.d.ts +0 -66
  125. package/KubeX/Tools/Dapr/Storage.js +0 -70
  126. package/KubeX/Tools/Dapr/index.d.ts +0 -10
  127. package/KubeX/Tools/Dapr/index.js +0 -31
  128. package/KubeX/Tools/Echo-App.d.ts +0 -3
  129. package/KubeX/Tools/Echo-App.js +0 -21
  130. package/KubeX/Tools/Gitea/GiteaRepo.d.ts +0 -72
  131. package/KubeX/Tools/Gitea/GiteaRepo.js +0 -184
  132. package/KubeX/Tools/Gitea/GiteaRunner.d.ts +0 -11
  133. package/KubeX/Tools/Gitea/GiteaRunner.js +0 -37
  134. package/KubeX/Tools/Gitea/GiteaRunner.v1.d.ts +0 -11
  135. package/KubeX/Tools/Gitea/GiteaRunner.v1.js +0 -123
  136. package/KubeX/Tools/HarborRepo.d.ts +0 -29
  137. package/KubeX/Tools/HarborRepo.js +0 -78
  138. package/KubeX/Tools/HelloWorld.d.ts +0 -3
  139. package/KubeX/Tools/HelloWorld.js +0 -21
  140. package/KubeX/Tools/KubeCleanup.d.ts +0 -9
  141. package/KubeX/Tools/KubeCleanup.js +0 -34
  142. package/KubeX/Tools/NoIp.d.ts +0 -13
  143. package/KubeX/Tools/NoIp.js +0 -24
  144. package/KubeX/Tools/OpenLDAP/index.d.ts +0 -12
  145. package/KubeX/Tools/OpenLDAP/index.js +0 -56
  146. package/KubeX/Tools/OutlineVpn/index.d.ts +0 -25
  147. package/KubeX/Tools/OutlineVpn/index.js +0 -256
  148. package/KubeX/Tools/SqlPad.d.ts +0 -29
  149. package/KubeX/Tools/SqlPad.js +0 -133
  150. package/KubeX/Tools/ToolPod.d.ts +0 -10
  151. package/KubeX/Tools/ToolPod.js +0 -40
  152. package/KubeX/Tools/UptimeKuma.d.ts +0 -6
  153. package/KubeX/Tools/UptimeKuma.js +0 -38
  154. package/KubeX/Tools/index.d.ts +0 -27
  155. package/KubeX/Tools/index.js +0 -35
  156. package/KubeX/VairableResolvers/index.d.ts +0 -15
  157. package/KubeX/VairableResolvers/index.js +0 -49
  158. package/KubeX/kx/index.d.ts +0 -114
  159. package/KubeX/kx/index.js +0 -423
  160. package/KubeX/types.d.ts +0 -49
  161. package/KubeX/types.js +0 -3
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Random_1 = require("../../Core/Random");
4
- const CustomHelper_1 = require("../../KeyVault/CustomHelper");
5
- const Deployment_1 = require("../Deployment");
6
- const Storage_1 = require("../Storage");
7
- const pulumi_1 = require("@pulumi/pulumi");
8
- exports.default = ({ name = 'sql', namespace, databaseNames, vaultInfo, auth, storageClassName, provider, }) => {
9
- const password = auth?.rootPass
10
- ? auth.rootPass
11
- : (0, Random_1.randomPassword)({ name, vaultInfo }).result;
12
- //Create Storage Container and add Secret to Namespace
13
- const claim = (0, Storage_1.createPVCForStorageClass)({
14
- name,
15
- namespace,
16
- provider,
17
- storageClassName,
18
- });
19
- const sql = (0, Deployment_1.default)({
20
- name,
21
- namespace,
22
- provider,
23
- configMap: { MSSQL_PID: 'Developer', ACCEPT_EULA: 'Y' },
24
- secrets: { SA_PASSWORD: password },
25
- podConfig: {
26
- ports: { tcp: 1433 },
27
- image: 'mcr.microsoft.com/mssql/server:2019-latest',
28
- securityContext: { fsGroup: 10001 },
29
- podSecurityContext: {
30
- allowPrivilegeEscalation: true,
31
- readOnlyRootFilesystem: false,
32
- privileged: true,
33
- },
34
- resources: {
35
- requests: { cpu: '1m', memory: '1Gi' },
36
- limits: { cpu: '500m', memory: '2Gi' },
37
- },
38
- volumes: [
39
- {
40
- name: 'sqldbs',
41
- mountPath: '/var/opt/mssql',
42
- persistentVolumeClaim: claim.metadata.name,
43
- },
44
- ],
45
- },
46
- deploymentConfig: { replicas: 1 },
47
- serviceConfig: { usePodPort: true },
48
- });
49
- const rs = {
50
- sql,
51
- host: (0, pulumi_1.interpolate) `${name}.${namespace}.svc.cluster.local`,
52
- username: 'sa',
53
- password: password,
54
- };
55
- if (databaseNames) {
56
- databaseNames.map((d) => {
57
- //Create DataBase in the Server
58
- // new MsSqlDatabaseResource(dbName, {
59
- // databaseName: dbName,
60
- // server: rs.host,
61
- // userName: rs.username,
62
- // password: rs.password,
63
- // });
64
- if (vaultInfo) {
65
- //Add Connection String to Key Vault
66
- (0, CustomHelper_1.addCustomSecret)({
67
- name: d,
68
- vaultInfo,
69
- value: (0, pulumi_1.interpolate) `Data Source=${rs.host};Initial Catalog=${d};User Id=${rs.username};Password=${rs.password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=True;Connection Timeout=120;`,
70
- contentType: name,
71
- });
72
- }
73
- });
74
- }
75
- return rs;
76
- };
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3FsU2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0t1YmVYL0RhdGFiYXNlcy9TcWxTZXJ2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFDQSw4Q0FBbUQ7QUFDbkQsOERBQThEO0FBQzlELDhDQUF1QztBQUN2Qyx3Q0FBc0Q7QUFDdEQsMkNBQTZDO0FBTTdDLGtCQUFlLENBQUMsRUFDZCxJQUFJLEdBQUcsS0FBSyxFQUNaLFNBQVMsRUFDVCxhQUFhLEVBQ2IsU0FBUyxFQUNULElBQUksRUFDSixnQkFBZ0IsRUFDaEIsUUFBUSxHQUNGLEVBQUUsRUFBRTtJQUNWLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxRQUFRO1FBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtRQUNmLENBQUMsQ0FBQyxJQUFBLHVCQUFjLEVBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFFL0Msc0RBQXNEO0lBQ3RELE1BQU0sS0FBSyxHQUFHLElBQUEsa0NBQXdCLEVBQUM7UUFDckMsSUFBSTtRQUNKLFNBQVM7UUFDVCxRQUFRO1FBQ1IsZ0JBQWdCO0tBQ2pCLENBQUMsQ0FBQztJQUVILE1BQU0sR0FBRyxHQUFHLElBQUEsb0JBQVUsRUFBQztRQUNyQixJQUFJO1FBQ0osU0FBUztRQUNULFFBQVE7UUFFUixTQUFTLEVBQUUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUU7UUFDdkQsT0FBTyxFQUFFLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtRQUVsQyxTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3BCLEtBQUssRUFBRSw0Q0FBNEM7WUFFbkQsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUNuQyxrQkFBa0IsRUFBRTtnQkFDbEIsd0JBQXdCLEVBQUUsSUFBSTtnQkFDOUIsc0JBQXNCLEVBQUUsS0FBSztnQkFDN0IsVUFBVSxFQUFFLElBQUk7YUFDakI7WUFFRCxTQUFTLEVBQUU7Z0JBQ1QsUUFBUSxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUN0QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7YUFDdkM7WUFFRCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsU0FBUyxFQUFFLGdCQUFnQjtvQkFDM0IscUJBQXFCLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJO2lCQUMzQzthQUNGO1NBQ0Y7UUFDRCxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUU7UUFDakMsYUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRTtLQUNwQyxDQUFDLENBQUM7SUFFSCxNQUFNLEVBQUUsR0FBRztRQUNULEdBQUc7UUFDSCxJQUFJLEVBQUUsSUFBQSxvQkFBVyxFQUFBLEdBQUcsSUFBSSxJQUFJLFNBQVMsb0JBQW9CO1FBQ3pELFFBQVEsRUFBRSxJQUFJO1FBQ2QsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQztJQUVGLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3RCLCtCQUErQjtZQUMvQixzQ0FBc0M7WUFDdEMsMEJBQTBCO1lBQzFCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsMkJBQTJCO1lBQzNCLE1BQU07WUFFTixJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLG9DQUFvQztnQkFDcEMsSUFBQSw4QkFBZSxFQUFDO29CQUNkLElBQUksRUFBRSxDQUFDO29CQUNQLFNBQVM7b0JBQ1QsS0FBSyxFQUFFLElBQUEsb0JBQVcsRUFBQSxlQUFlLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsYUFBYSxFQUFFLENBQUMsUUFBUSxrR0FBa0c7b0JBQzlNLFdBQVcsRUFBRSxJQUFJO2lCQUNsQixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDLENBQUMifQ==
@@ -1,14 +0,0 @@
1
- import * as k8s from '@pulumi/kubernetes';
2
- import { Provider } from '@pulumi/kubernetes';
3
- import * as kx from '../kx';
4
- export interface PodAutoScaleProps {
5
- name: string;
6
- maxReplicas: number;
7
- minReplicas?: number;
8
- averageUtilization?: number;
9
- stabilizationMinutes?: number;
10
- deployment: kx.Deployment | k8s.apps.v1.Deployment;
11
- provider: Provider;
12
- }
13
- export declare const PodAutoScale: ({ name, maxReplicas, minReplicas, averageUtilization, stabilizationMinutes, deployment, provider, }: PodAutoScaleProps) => import("@pulumi/kubernetes/autoscaling/v2/horizontalPodAutoscaler").HorizontalPodAutoscaler;
14
- export default PodAutoScale;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PodAutoScale = void 0;
4
- const k8s = require("@pulumi/kubernetes");
5
- const PodAutoScale = ({ name, maxReplicas = 3, minReplicas = 1, averageUtilization = 80, stabilizationMinutes = 30, deployment, provider, }) => {
6
- name = `${name}-HA`.toLowerCase();
7
- return new k8s.autoscaling.v2.HorizontalPodAutoscaler(name, {
8
- metadata: {
9
- name,
10
- namespace: deployment.metadata.namespace,
11
- },
12
- spec: {
13
- scaleTargetRef: {
14
- kind: 'Deployment',
15
- apiVersion: 'apps/v1',
16
- name: deployment.metadata.name,
17
- },
18
- maxReplicas,
19
- minReplicas,
20
- metrics: [
21
- {
22
- type: 'Resource',
23
- resource: {
24
- name: 'cpu',
25
- target: { type: 'Utilization', averageUtilization },
26
- },
27
- },
28
- {
29
- type: 'Resource',
30
- resource: {
31
- name: 'memory',
32
- target: { type: 'Utilization', averageUtilization },
33
- },
34
- },
35
- ],
36
- behavior: {
37
- scaleDown: {
38
- stabilizationWindowSeconds: stabilizationMinutes * 60,
39
- policies: [{ type: 'Pods', value: 1, periodSeconds: 15 * 60 }],
40
- },
41
- scaleUp: {
42
- stabilizationWindowSeconds: stabilizationMinutes * 60,
43
- policies: [{ type: 'Pods', value: 1, periodSeconds: 15 * 60 }],
44
- },
45
- },
46
- },
47
- }, { provider });
48
- };
49
- exports.PodAutoScale = PodAutoScale;
50
- exports.default = exports.PodAutoScale;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUG9kQXV0b3NjYWxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9LdWJlWC9EZXBsb3ltZW50L1BvZEF1dG9zY2FsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMENBQTBDO0FBY25DLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFDM0IsSUFBSSxFQUNKLFdBQVcsR0FBRyxDQUFDLEVBQ2YsV0FBVyxHQUFHLENBQUMsRUFDZixrQkFBa0IsR0FBRyxFQUFFLEVBQ3ZCLG9CQUFvQixHQUFHLEVBQUUsRUFDekIsVUFBVSxFQUNWLFFBQVEsR0FDVSxFQUFFLEVBQUU7SUFDdEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUNuRCxJQUFJLEVBQ0o7UUFDRSxRQUFRLEVBQUU7WUFDUixJQUFJO1lBQ0osU0FBUyxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUztTQUN6QztRQUNELElBQUksRUFBRTtZQUNKLGNBQWMsRUFBRTtnQkFDZCxJQUFJLEVBQUUsWUFBWTtnQkFDbEIsVUFBVSxFQUFFLFNBQVM7Z0JBQ3JCLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUk7YUFDL0I7WUFFRCxXQUFXO1lBQ1gsV0FBVztZQUVYLE9BQU8sRUFBRTtnQkFDUDtvQkFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsUUFBUSxFQUFFO3dCQUNSLElBQUksRUFBRSxLQUFLO3dCQUNYLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsa0JBQWtCLEVBQUU7cUJBQ3BEO2lCQUNGO2dCQUNEO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixRQUFRLEVBQUU7d0JBQ1IsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRTtxQkFDcEQ7aUJBQ0Y7YUFDRjtZQUVELFFBQVEsRUFBRTtnQkFDUixTQUFTLEVBQUU7b0JBQ1QsMEJBQTBCLEVBQUUsb0JBQW9CLEdBQUcsRUFBRTtvQkFDckQsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQztpQkFDL0Q7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLDBCQUEwQixFQUFFLG9CQUFvQixHQUFHLEVBQUU7b0JBQ3JELFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7aUJBQy9EO2FBQ0Y7U0FDRjtLQUNGLEVBQ0QsRUFBRSxRQUFRLEVBQUUsQ0FDYixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBMURXLFFBQUEsWUFBWSxnQkEwRHZCO0FBRUYsa0JBQWUsb0JBQVksQ0FBQyJ9
@@ -1,136 +0,0 @@
1
- import * as k8s from '@pulumi/kubernetes';
2
- import * as kx from '../kx';
3
- import * as pulumi from '@pulumi/pulumi';
4
- import { Input, Resource } from '@pulumi/pulumi';
5
- import { IngressProps } from '../Ingress/type';
6
- import { input as inputs } from '@pulumi/kubernetes/types';
7
- import { PodAutoScaleProps } from './PodAutoscaler';
8
- type restartPolicies = 'Always' | 'OnFailure' | 'Never';
9
- export declare const defaultResources: {
10
- limits: {
11
- memory: string;
12
- cpu: string;
13
- };
14
- requests: {
15
- memory: string;
16
- cpu: string;
17
- };
18
- };
19
- export declare const virtualHostConfig: {
20
- nodeSelector: {
21
- 'kubernetes.io/role': string;
22
- 'beta.kubernetes.io/os': string;
23
- type: string;
24
- };
25
- tolerations: {
26
- effect: string;
27
- key: string;
28
- value: string;
29
- }[];
30
- };
31
- interface PodConfigProps {
32
- ports: kx.types.PortMap;
33
- image: Input<string>;
34
- imagePullSecret?: string;
35
- imagePullPolicy?: 'Always' | 'Never' | 'IfNotPresent';
36
- resources?: Input<k8s.types.input.core.v1.ResourceRequirements> | false;
37
- command?: string[];
38
- volumes?: Array<{
39
- name: string;
40
- mountPath: string;
41
- emptyDir?: boolean;
42
- subPath?: string;
43
- hostPath?: string;
44
- readOnly?: boolean;
45
- /** The secret name */
46
- secretName?: Input<string>;
47
- configMapName?: Input<string>;
48
- /** The volume claims name */
49
- persistentVolumeClaim?: Input<string>;
50
- type?: 'azureFile';
51
- }>;
52
- podSecurityContext?: Input<k8s.types.input.core.v1.SecurityContext>;
53
- securityContext?: Input<k8s.types.input.core.v1.PodSecurityContext>;
54
- tolerations?: pulumi.Input<inputs.core.v1.Toleration>[];
55
- nodeSelector?: pulumi.Input<{
56
- [key: string]: pulumi.Input<string>;
57
- }>;
58
- probes?: {
59
- liveness?: {
60
- httpGet: string;
61
- port: number;
62
- initialDelaySeconds?: number;
63
- periodSeconds?: number;
64
- timeoutSeconds?: number;
65
- failureThreshold?: number;
66
- };
67
- lifecycle?: {
68
- postStart?: pulumi.Input<string>[];
69
- };
70
- };
71
- }
72
- export type DeploymentIngress = Omit<IngressProps, 'name' | 'internalIngress' | 'service' | 'services' | 'provider' | 'dependsOn'>;
73
- export type IngressTypes = 'nginx' | 'traefik';
74
- interface Props {
75
- name: string;
76
- namespace: Input<string>;
77
- podConfig: PodConfigProps;
78
- deploymentConfig?: {
79
- args?: Input<string>[];
80
- replicas?: number;
81
- /** Run App and Jobs using Virtual Node **/
82
- useVirtualHost?: boolean;
83
- /** Enforce resources to be redeployed everytime */
84
- enforceReDeployment?: boolean;
85
- } | false;
86
- serviceConfig?: {
87
- usePodPort?: boolean;
88
- useClusterIP?: boolean;
89
- } | false;
90
- jobConfigs?: Array<{
91
- name: string;
92
- /** Run Jobs using Virtual Node **/
93
- useVirtualHost?: boolean;
94
- /**If schedule provided the cron job will be created instead just a job*/
95
- cron?: {
96
- schedule: string;
97
- failedJobsHistoryLimit?: number;
98
- successfulJobsHistoryLimit?: number;
99
- concurrencyPolicy: 'Forbid' | 'Allow' | 'Replace';
100
- };
101
- args?: Input<string>[];
102
- restartPolicy?: restartPolicies;
103
- ttlSecondsAfterFinished?: number;
104
- }>;
105
- ingressConfig?: {
106
- type: IngressTypes;
107
- } & DeploymentIngress;
108
- configMap?: Input<{
109
- [key: string]: Input<string>;
110
- }>;
111
- secrets?: Input<{
112
- [key: string]: Input<string>;
113
- }>;
114
- mapConfigToVolume?: {
115
- name: string;
116
- path: string;
117
- subPath?: string;
118
- };
119
- mapSecretsToVolume?: {
120
- name: string;
121
- path: string;
122
- subPath?: string;
123
- };
124
- /**
125
- * Enable high availability for the deployment. Multi instance of the pod will be scale up and down based on the usage.
126
- */
127
- enableHA?: Omit<PodAutoScaleProps, 'provider' | 'deployment'>;
128
- provider: k8s.Provider;
129
- dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
130
- }
131
- declare const _default: ({ name, namespace, configMap, secrets, mapSecretsToVolume, mapConfigToVolume, podConfig, deploymentConfig, serviceConfig, jobConfigs, ingressConfig, enableHA, provider, dependsOn, }: Props) => {
132
- deployment: kx.Deployment | undefined;
133
- service: kx.Service | undefined;
134
- jobs: (import("@pulumi/kubernetes/batch/v1/cronJob").CronJob | kx.Job)[] | undefined;
135
- };
136
- export default _default;
@@ -1,306 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.virtualHostConfig = exports.defaultResources = void 0;
4
- const k8s = require("@pulumi/kubernetes");
5
- const kx = require("../kx");
6
- const Ingress_1 = require("../Ingress");
7
- const pulumi_1 = require("@pulumi/pulumi");
8
- const Helpers_1 = require("../../Common/Helpers");
9
- const CertHelper_1 = require("../CertHelper");
10
- const PodAutoscaler_1 = require("./PodAutoscaler");
11
- const ConfigSecret_1 = require("../ConfigSecret");
12
- exports.defaultResources = {
13
- limits: { memory: '0.5Gi', cpu: '500m' },
14
- requests: { memory: '10Mi', cpu: '1m' },
15
- };
16
- exports.virtualHostConfig = {
17
- nodeSelector: {
18
- 'kubernetes.io/role': 'agent',
19
- 'beta.kubernetes.io/os': 'linux',
20
- type: 'virtual-kubelet',
21
- },
22
- tolerations: [
23
- {
24
- effect: 'NoSchedule',
25
- key: 'virtual-kubelet.io/provider',
26
- value: 'azure',
27
- },
28
- ],
29
- };
30
- const buildPod = ({ name, envFrom, podConfig, useVirtualHost, restartPolicy, args, }) => {
31
- //console.log('buildPod', podConfig);
32
- if (useVirtualHost) {
33
- podConfig.nodeSelector = exports.virtualHostConfig.nodeSelector;
34
- podConfig.tolerations = exports.virtualHostConfig.tolerations;
35
- if (!podConfig.resources)
36
- podConfig.resources = false;
37
- }
38
- //else if (!podConfig.nodeSelector) podConfig.nodeSelector = { app: name };
39
- const resources = podConfig.resources === false
40
- ? undefined
41
- : podConfig.resources || exports.defaultResources;
42
- return new kx.PodBuilder({
43
- terminationGracePeriodSeconds: 30,
44
- securityContext: podConfig.securityContext,
45
- automountServiceAccountToken: false,
46
- volumes: podConfig.volumes
47
- ? podConfig.volumes.map((v) => ({
48
- name: v.name.toLowerCase(),
49
- emptyDir: v.emptyDir ? {} : undefined,
50
- hostPath: v.hostPath ? { path: v.hostPath } : undefined,
51
- csi: v.secretName && v.type === 'azureFile'
52
- ? {
53
- driver: 'file.csi.azure.com',
54
- volumeAttributes: {
55
- secretName: v.secretName,
56
- shareName: v.name.toLowerCase(),
57
- // mountOptions:
58
- // 'dir_mode=0777,file_mode=0777,cache=strict,actimeo=30',
59
- },
60
- }
61
- : undefined,
62
- persistentVolumeClaim: v.persistentVolumeClaim
63
- ? { claimName: v.persistentVolumeClaim }
64
- : undefined,
65
- configMap: v.configMapName ? { name: v.configMapName } : undefined,
66
- secret: v.secretName && v.type === undefined
67
- ? { secretName: v.secretName }
68
- : undefined,
69
- }))
70
- : undefined,
71
- containers: [
72
- {
73
- name,
74
- image: podConfig.image,
75
- imagePullPolicy: podConfig.imagePullPolicy,
76
- ports: podConfig.ports,
77
- command: podConfig.command,
78
- envFrom,
79
- securityContext: podConfig.podSecurityContext,
80
- resources,
81
- args,
82
- volumeMounts: podConfig.volumes
83
- ? podConfig.volumes.map((v) => ({
84
- name: v.name,
85
- mountPath: v.mountPath,
86
- subPath: v.subPath,
87
- readOnly: v.readOnly ?? false,
88
- }))
89
- : undefined,
90
- livenessProbe: podConfig.probes?.liveness
91
- ? {
92
- initialDelaySeconds: podConfig.probes.liveness.initialDelaySeconds || 30,
93
- periodSeconds: podConfig.probes.liveness.periodSeconds || 300,
94
- timeoutSeconds: podConfig.probes.liveness.timeoutSeconds || 5,
95
- failureThreshold: podConfig.probes.liveness.failureThreshold || 2,
96
- httpGet: podConfig.probes.liveness.httpGet
97
- ? {
98
- path: podConfig.probes.liveness.httpGet,
99
- port: podConfig.probes.liveness.port,
100
- }
101
- : undefined,
102
- }
103
- : undefined,
104
- lifecycle: podConfig.probes?.lifecycle?.postStart
105
- ? {
106
- postStart: {
107
- exec: { command: podConfig.probes.lifecycle.postStart },
108
- },
109
- }
110
- : undefined,
111
- },
112
- ],
113
- imagePullSecrets: podConfig.imagePullSecret
114
- ? [
115
- {
116
- name: podConfig.imagePullSecret,
117
- },
118
- ]
119
- : undefined,
120
- restartPolicy,
121
- tolerations: podConfig.tolerations,
122
- nodeSelector: podConfig.nodeSelector,
123
- });
124
- };
125
- exports.default = ({ name, namespace, configMap, secrets, mapSecretsToVolume, mapConfigToVolume, podConfig, deploymentConfig, serviceConfig, jobConfigs, ingressConfig, enableHA, provider, dependsOn, }) => {
126
- const deploymentTime = typeof deploymentConfig === 'object' && deploymentConfig.enforceReDeployment
127
- ? new Date().getTime().toString()
128
- : '';
129
- if (!podConfig.volumes)
130
- podConfig.volumes = [];
131
- const configSecret = (0, ConfigSecret_1.default)({
132
- name,
133
- namespace,
134
- configMap,
135
- secrets,
136
- provider,
137
- dependsOn,
138
- });
139
- const envFrom = new Array();
140
- if (configSecret.config) {
141
- envFrom.push({
142
- configMapRef: { name: configSecret.config.metadata.name },
143
- });
144
- }
145
- if (configSecret.secret) {
146
- //Create Secrets
147
- envFrom.push({ secretRef: { name: configSecret.secret.metadata.name } });
148
- }
149
- if (mapConfigToVolume && configSecret.config) {
150
- podConfig.volumes.push({
151
- name: mapConfigToVolume.name,
152
- mountPath: mapConfigToVolume.path,
153
- subPath: mapConfigToVolume.subPath,
154
- configMapName: configSecret.config.metadata.name,
155
- });
156
- }
157
- if (mapSecretsToVolume && configSecret.secret) {
158
- podConfig.volumes.push({
159
- name: mapSecretsToVolume.name,
160
- mountPath: mapSecretsToVolume.path,
161
- subPath: mapSecretsToVolume.subPath,
162
- secretName: configSecret.secret.metadata.name,
163
- });
164
- }
165
- if (!podConfig.ports)
166
- podConfig.ports = { http: 8080 };
167
- const deployment = deploymentConfig == false
168
- ? undefined
169
- : new kx.Deployment(name, {
170
- metadata: {
171
- namespace,
172
- annotations: { 'pulumi.com/skipAwait': 'true' },
173
- labels: { app: name, time: deploymentTime },
174
- },
175
- spec: buildPod({
176
- name,
177
- podConfig,
178
- envFrom,
179
- args: deploymentConfig?.args,
180
- useVirtualHost: deploymentConfig?.useVirtualHost,
181
- }).asDeploymentSpec({
182
- replicas: deploymentConfig?.replicas ?? 1,
183
- revisionHistoryLimit: 1,
184
- // strategy: {
185
- // type: deploymentConfig?.strategy,
186
- // rollingUpdate: undefined,
187
- // },
188
- }),
189
- }, {
190
- provider,
191
- dependsOn,
192
- deleteBeforeReplace: true,
193
- replaceOnChanges: deploymentConfig?.enforceReDeployment
194
- ? ['*']
195
- : undefined,
196
- customTimeouts: { create: '1m', update: '1m' },
197
- });
198
- let jobs = undefined;
199
- //Jobs
200
- if (jobConfigs) {
201
- jobs = jobConfigs.map((job) => {
202
- if (!job.useVirtualHost && deploymentConfig !== false)
203
- job.useVirtualHost = Boolean(deploymentConfig?.useVirtualHost);
204
- if (job.cron)
205
- return new k8s.batch.v1.CronJob(job.name, {
206
- metadata: { namespace },
207
- spec: buildPod({
208
- name,
209
- podConfig,
210
- envFrom,
211
- useVirtualHost: job.useVirtualHost,
212
- args: job.args,
213
- restartPolicy: job.restartPolicy || 'Never',
214
- }).asCronJobSpec({
215
- failedJobsHistoryLimit: 1,
216
- successfulJobsHistoryLimit: 1,
217
- ...job.cron,
218
- }),
219
- }, { provider, deleteBeforeReplace: true });
220
- return new kx.Job(job.name, {
221
- metadata: {
222
- namespace,
223
- annotations: { 'pulumi.com/skipAwait': 'true' },
224
- },
225
- spec: buildPod({
226
- name,
227
- podConfig,
228
- envFrom,
229
- useVirtualHost: job.useVirtualHost,
230
- args: job.args,
231
- restartPolicy: job.restartPolicy || 'Never',
232
- }).asJobSpec({
233
- ttlSecondsAfterFinished: job.ttlSecondsAfterFinished || 604800, //7 days
234
- }),
235
- }, { provider, deleteBeforeReplace: true });
236
- });
237
- }
238
- let service = undefined;
239
- if (deployment && serviceConfig !== false) {
240
- // const servicePort: any = {
241
- // name: 'http',
242
- // port: 80,
243
- // targetPort: podConfig.port,
244
- // protocol: 'TCP',
245
- // };
246
- //
247
- // if (serviceConfig?.usePodPort) {
248
- // servicePort.port = podConfig.port;
249
- // //servicePort.targetPort = podConfig.port;
250
- // } else if (serviceConfig?.port) {
251
- // servicePort.port = serviceConfig.port;
252
- // //servicePort.targetPort = podConfig.port;
253
- // }
254
- const portKeys = Object.keys(podConfig.ports);
255
- //Service
256
- service = deployment.createService({
257
- name,
258
- ports: portKeys.length == 1
259
- ? [
260
- {
261
- name: 'http',
262
- port: serviceConfig?.usePodPort
263
- ? podConfig.ports[portKeys[0]]
264
- : 80,
265
- targetPort: podConfig.ports[portKeys[0]],
266
- protocol: 'TCP',
267
- },
268
- ]
269
- : portKeys.map((k) => ({
270
- name: k,
271
- port: podConfig.ports[k],
272
- //targetPort: podConfig.ports[k],
273
- protocol: 'TCP',
274
- })),
275
- type: serviceConfig?.useClusterIP ? 'LoadBalancer' : undefined,
276
- });
277
- }
278
- //Ingress
279
- if (ingressConfig && service) {
280
- const ingressProps = {
281
- ...ingressConfig,
282
- className: ingressConfig.className || 'nginx',
283
- name: `${name}-ingress`.toLowerCase(),
284
- hostNames: ingressConfig.hostNames.map((host) => (0, pulumi_1.output)(host).apply((h) => h.toLowerCase().replace('https://', ''))),
285
- tlsSecretName: ingressConfig.allowHttp
286
- ? undefined
287
- : ingressConfig.tlsSecretName ||
288
- (0, pulumi_1.output)(ingressConfig.hostNames).apply((h) => (0, CertHelper_1.getTlsName)(ingressConfig.certManagerIssuer
289
- ? (0, Helpers_1.getDomainFromUrl)(h[0])
290
- : (0, Helpers_1.getRootDomainFromUrl)(h[0]), Boolean(ingressConfig.certManagerIssuer))),
291
- service,
292
- provider,
293
- dependsOn: [service],
294
- };
295
- if (ingressConfig.type === 'nginx') {
296
- (0, Ingress_1.NginxIngress)(ingressProps);
297
- }
298
- else
299
- (0, Ingress_1.TraefikIngress)(ingressProps);
300
- }
301
- if (enableHA && deployment) {
302
- (0, PodAutoscaler_1.PodAutoScale)({ ...enableHA, deployment, provider });
303
- }
304
- return { deployment, service, jobs };
305
- };
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvRGVwbG95bWVudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwwQ0FBMEM7QUFDMUMsNEJBQTRCO0FBQzVCLHdDQUEwRDtBQUUxRCwyQ0FBeUQ7QUFDekQsa0RBQThFO0FBQzlFLDhDQUEyQztBQUczQyxtREFBa0U7QUFDbEUsa0RBQTJDO0FBSTlCLFFBQUEsZ0JBQWdCLEdBQUc7SUFDOUIsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFO0lBQ3hDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtDQUN4QyxDQUFDO0FBRVcsUUFBQSxpQkFBaUIsR0FBRztJQUMvQixZQUFZLEVBQUU7UUFDWixvQkFBb0IsRUFBRSxPQUFPO1FBQzdCLHVCQUF1QixFQUFFLE9BQU87UUFDaEMsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QjtJQUNELFdBQVcsRUFBRTtRQUNYO1lBQ0UsTUFBTSxFQUFFLFlBQVk7WUFDcEIsR0FBRyxFQUFFLDZCQUE2QjtZQUNsQyxLQUFLLEVBQUUsT0FBTztTQUNmO0tBQ0Y7Q0FDRixDQUFDO0FBcURGLE1BQU0sUUFBUSxHQUFHLENBQUMsRUFDaEIsSUFBSSxFQUNKLE9BQU8sRUFDUCxTQUFTLEVBQ1QsY0FBYyxFQUNkLGFBQWEsRUFDYixJQUFJLEdBQ1ksRUFBRSxFQUFFO0lBQ3BCLHFDQUFxQztJQUNyQyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLFNBQVMsQ0FBQyxZQUFZLEdBQUcseUJBQWlCLENBQUMsWUFBWSxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxXQUFXLEdBQUcseUJBQWlCLENBQUMsV0FBVyxDQUFDO1FBRXRELElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUztZQUFFLFNBQVMsQ0FBQyxTQUFTLEdBQUcsS0FBSyxD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
@@ -1,4 +0,0 @@
1
- export declare const getKubeDomainCert: (domain: string) => Promise<{
2
- cert: string;
3
- privateKey: string;
4
- } | undefined>;
package/KubeX/Helpers.js DELETED
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getKubeDomainCert = void 0;
4
- const Helpers_1 = require("../Web/Helpers");
5
- const Certificate_1 = require("../Certificate");
6
- const getKubeDomainCert = async (domain) => {
7
- //Get cert from CertOrder.
8
- const cert = await (0, Helpers_1.getCertificateForDomain)(domain);
9
- //Convert to K8s cert
10
- return cert
11
- ? (0, Certificate_1.convertPfxToPem)({
12
- base64Cert: cert.base64CertData,
13
- })
14
- : undefined;
15
- };
16
- exports.getKubeDomainCert = getKubeDomainCert;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9LdWJlWC9IZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDRDQUF5RDtBQUN6RCxnREFBaUQ7QUFFMUMsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7SUFDeEQsMEJBQTBCO0lBQzFCLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQ0FBdUIsRUFBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxxQkFBcUI7SUFDckIsT0FBTyxJQUFJO1FBQ1QsQ0FBQyxDQUFDLElBQUEsNkJBQWUsRUFBQztZQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsY0FBYztTQUNoQyxDQUFDO1FBQ0osQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNoQixDQUFDLENBQUM7QUFUVyxRQUFBLGlCQUFpQixxQkFTNUIifQ==
@@ -1,2 +0,0 @@
1
- declare const _default: () => void;
2
- export default _default;
@@ -1,4 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = () => { };
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwR2F0ZXdheUluZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvS3ViZVgvSW5ncmVzcy9BcHBHYXRld2F5SW5ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLGtCQUFlLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyJ9
@@ -1,13 +0,0 @@
1
- export declare const defaultResponseHeaders: {
2
- server: string;
3
- 'X-Powered-By': string;
4
- 'X-AspNet-Version': string;
5
- 'Strict-Transport-Security': string;
6
- 'X-XSS-Protection': string;
7
- 'X-Frame-Options': string;
8
- 'Content-Security-Policy': string;
9
- 'X-Content-Type-Options': string;
10
- 'Expect-Ct': string;
11
- 'Cache-Control': string;
12
- };
13
- export declare const corsDefaultHeaders = "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization";