@drunk-pulumi/azure 0.0.37 → 0.0.38
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 +6 -11
- package/Aks/Helper.js +40 -65
- package/Aks/Identity.d.ts +3 -10
- package/Aks/Identity.js +9 -8
- package/Aks/index.d.ts +67 -71
- package/Aks/index.js +198 -314
- package/Apim/ApiProduct/PolicyBuilder.js +25 -27
- package/Apim/ApiProduct/SwaggerHelper.js +1 -3
- package/Apim/ApiProduct/index.d.ts +3 -3
- package/Apim/ApiProduct/index.js +1 -2
- package/Automation/index.d.ts +7 -0
- package/Automation/index.js +55 -0
- package/AzAd/EnvRoles.Consts.d.ts +12 -0
- package/AzAd/EnvRoles.Consts.js +125 -0
- package/AzAd/EnvRoles.d.ts +16 -15
- package/AzAd/EnvRoles.js +69 -47
- package/AzAd/GraphDefinition.d.ts +2 -2
- package/AzAd/GraphDefinition.js +3055 -3056
- package/AzAd/Helper.d.ts +24 -13
- package/AzAd/Helper.js +98 -25
- package/AzAd/Identities/AzDevOpsIdentity.d.ts +12 -0
- package/AzAd/Identities/AzDevOpsIdentity.js +32 -0
- package/AzAd/Identities/AzDevOpsManagedIdentity.d.ts +7 -0
- package/AzAd/Identities/AzDevOpsManagedIdentity.js +15 -0
- package/AzAd/Identities/AzUserAdRevertSync.d.ts +2 -9
- package/AzAd/Identities/AzUserAdRevertSync.js +4 -5
- package/AzAd/Identities/index.d.ts +3 -0
- package/AzAd/Identities/index.js +10 -0
- package/AzAd/Identity.d.ts +10 -22
- package/AzAd/Identity.js +50 -61
- package/AzAd/Role.d.ts +2 -3
- package/AzAd/Role.js +4 -5
- package/AzAd/RoleAssignment.d.ts +34 -5
- package/AzAd/RoleAssignment.js +2 -2
- package/AzAd/RoleDefinitions/JustInTimeRequestRole.d.ts +2 -0
- package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +25 -0
- package/AzAd/RolesBuiltIn.d.ts +29 -0
- package/AzAd/RolesBuiltIn.js +13034 -8058
- package/AzAd/UserAssignedIdentity.d.ts +6 -0
- package/AzAd/UserAssignedIdentity.js +27 -0
- package/Builder/AksBuilder.d.ts +3 -0
- package/Builder/AksBuilder.js +95 -0
- package/Builder/VnetBuilder.d.ts +3 -0
- package/Builder/VnetBuilder.js +279 -0
- package/Builder/index.d.ts +2 -0
- package/Builder/index.js +8 -0
- package/Builder/types.d.ts +120 -0
- package/Builder/types.js +18 -0
- package/Certificate/index.d.ts +1 -1
- package/Certificate/index.js +26 -28
- package/Common/AutoTags.js +2 -2
- package/Common/AzureEnv.d.ts +4 -3
- package/Common/AzureEnv.js +31 -24
- package/Common/GlobalEnv.d.ts +1 -2
- package/Common/GlobalEnv.js +7 -7
- package/Common/Location.d.ts +3 -3
- package/Common/Location.js +22 -9
- package/Common/LocationBuiltIn.d.ts +6 -81
- package/Common/LocationBuiltIn.js +491 -1923
- package/Common/Naming/index.d.ts +6 -4
- package/Common/Naming/index.js +64 -60
- package/Common/ResourceEnv.d.ts +2 -2
- package/Common/ResourceEnv.js +11 -10
- package/Common/StackEnv.js +2 -9
- package/Core/KeyGenetators.d.ts +16 -20
- package/Core/KeyGenetators.js +17 -16
- package/Core/Random.d.ts +4 -4
- package/Core/Random.js +10 -10
- package/Core/ResourceGroup.d.ts +12 -6
- package/Core/ResourceGroup.js +12 -24
- package/IOT/Hub/index.d.ts +4 -8
- package/IOT/Hub/index.js +19 -54
- package/KeyVault/Helper.d.ts +8 -6
- package/KeyVault/Helper.js +13 -19
- package/KeyVault/index.d.ts +1 -3
- package/KeyVault/index.js +2 -26
- package/Logs/Helpers.d.ts +35 -25
- package/Logs/Helpers.js +33 -20
- package/Logs/LogAnalytics.d.ts +2 -2
- package/Logs/LogAnalytics.js +15 -6
- package/Logs/index.d.ts +3 -3
- package/Logs/index.js +4 -4
- package/MySql/index.d.ts +2 -3
- package/MySql/index.js +16 -19
- package/{ReadMe.md → README.md} +6 -1
- package/Sql/index.d.ts +15 -9
- package/Sql/index.js +39 -41
- package/Storage/CdnEndpoint.d.ts +2 -2
- package/Storage/CdnEndpoint.js +14 -15
- package/Storage/Helper.d.ts +2 -2
- package/Storage/Helper.js +6 -6
- package/Storage/ManagementRules.d.ts +5 -23
- package/Storage/ManagementRules.js +3 -3
- package/Storage/index.d.ts +3 -3
- package/Storage/index.js +28 -28
- package/VM/AzureDevOpsExtension.d.ts +16 -0
- package/VM/AzureDevOpsExtension.js +14 -0
- package/VM/Extension.d.ts +15 -0
- package/VM/Extension.js +13 -0
- package/VM/GlobalSchedule.d.ts +10 -0
- package/VM/GlobalSchedule.js +20 -0
- package/VM/index.d.ts +18 -18
- package/VM/index.js +94 -57
- package/VNet/Bastion.d.ts +4 -4
- package/VNet/Bastion.js +12 -8
- package/VNet/Firewall.d.ts +19 -12
- package/VNet/Firewall.js +59 -40
- package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +16 -16
- package/VNet/FirewallPolicies/AksFirewallPolicy.js +193 -220
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +12 -10
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +170 -282
- package/VNet/FirewallPolicies/DefaultFirewallPolicy.d.ts +3 -0
- package/VNet/FirewallPolicies/DefaultFirewallPolicy.js +25 -0
- package/VNet/FirewallPolicies/index.d.ts +4 -0
- package/VNet/FirewallPolicies/index.js +10 -0
- package/VNet/FirewallPolicy.d.ts +14 -11
- package/VNet/FirewallPolicy.js +67 -74
- package/VNet/FirewallRules/AksFirewallRules.d.ts +4 -3
- package/VNet/FirewallRules/AksFirewallRules.js +101 -100
- package/VNet/Helper.d.ts +8 -4
- package/VNet/Helper.js +42 -35
- package/VNet/IpAddress.d.ts +6 -8
- package/VNet/IpAddress.js +6 -11
- package/VNet/IpAddressPrefix.d.ts +12 -9
- package/VNet/IpAddressPrefix.js +14 -13
- package/VNet/NSGRules/AppGatewaySecurityRule.d.ts +9 -0
- package/VNet/NSGRules/AppGatewaySecurityRule.js +46 -0
- package/VNet/NSGRules/AzADSecurityRule.d.ts +6 -0
- package/VNet/NSGRules/AzADSecurityRule.js +39 -0
- package/VNet/NSGRules/BastionSecurityRule.d.ts +9 -0
- package/VNet/NSGRules/BastionSecurityRule.js +93 -0
- package/VNet/NatGateway.d.ts +10 -0
- package/VNet/NatGateway.js +21 -0
- package/VNet/NetworkPeering.d.ts +7 -7
- package/VNet/NetworkPeering.js +29 -20
- package/VNet/PrivateDns.d.ts +8 -10
- package/VNet/PrivateDns.js +12 -14
- package/VNet/PrivateEndpoint.js +5 -2
- package/VNet/RouteTable.d.ts +7 -8
- package/VNet/RouteTable.js +6 -6
- package/VNet/SecurityGroup.d.ts +4 -4
- package/VNet/SecurityGroup.js +7 -3
- package/VNet/Subnet.d.ts +10 -7
- package/VNet/Subnet.js +4 -3
- package/VNet/VPNGateway.d.ts +13 -0
- package/VNet/VPNGateway.js +73 -0
- package/VNet/VirtualWAN.d.ts +7 -10
- package/VNet/VirtualWAN.js +1 -1
- package/VNet/Vnet.d.ts +29 -23
- package/VNet/Vnet.js +58 -121
- package/VNet/index.d.ts +17 -18
- package/VNet/index.js +41 -54
- package/VNet/types.d.ts +94 -0
- package/VNet/types.js +3 -0
- package/Web/types.d.ts +2 -134
- package/package.json +8 -8
- package/types.d.ts +22 -8
- package/z_tests/_tools/Mocks.js +12 -13
- package/Automation/AutoAccount.d.ts +0 -5
- package/Automation/AutoAccount.js +0 -18
- package/AzAd/Identities/AzDevOps.d.ts +0 -23
- package/AzAd/Identities/AzDevOps.js +0 -61
- package/AzAd/KeyVaultRoles.d.ts +0 -8
- package/AzAd/KeyVaultRoles.js +0 -53
- package/AzAd/ManagedIdentity.d.ts +0 -6
- package/AzAd/ManagedIdentity.js +0 -20
- package/AzAd/UserIdentity.d.ts +0 -5
- package/AzAd/UserIdentity.js +0 -12
- package/Common/Naming/AzureRegions.d.ts +0 -4
- package/Common/Naming/AzureRegions.js +0 -49
- package/KeyVault/VaultPermissions.d.ts +0 -27
- package/KeyVault/VaultPermissions.js +0 -226
- package/VNet/FirewallRules/types.d.ts +0 -20
- package/VNet/FirewallRules/types.js +0 -5
- package/VNet/NSGRules/AzADService.d.ts +0 -10
- package/VNet/NSGRules/AzADService.js +0 -45
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { BasicResourceArgs, IdentityRoleAssignment } from "../types";
|
|
2
|
+
interface Props extends BasicResourceArgs, IdentityRoleAssignment {
|
|
3
|
+
lock?: boolean;
|
|
4
|
+
}
|
|
5
|
+
declare const _default: ({ name, group, lock, roles, envRole, vaultInfo, dependsOn, importUri, ignoreChanges, }: Props) => import("@pulumi/azure-native/managedidentity/userAssignedIdentity").UserAssignedIdentity;
|
|
6
|
+
export default _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const azure = require("@pulumi/azure-native");
|
|
4
|
+
const Naming_1 = require("../Common/Naming");
|
|
5
|
+
const Locker_1 = require("../Core/Locker");
|
|
6
|
+
const Helper_1 = require("./Helper");
|
|
7
|
+
exports.default = ({ name, group, lock, roles, envRole, vaultInfo, dependsOn, importUri, ignoreChanges, }) => {
|
|
8
|
+
name = (0, Naming_1.getManagedIdentityName)(name);
|
|
9
|
+
const managedIdentity = new azure.managedidentity.UserAssignedIdentity(name, {
|
|
10
|
+
resourceName: name,
|
|
11
|
+
...group,
|
|
12
|
+
}, { dependsOn, import: importUri, ignoreChanges });
|
|
13
|
+
(0, Helper_1.grantIdentityPermissions)({
|
|
14
|
+
name,
|
|
15
|
+
envRole,
|
|
16
|
+
roles,
|
|
17
|
+
vaultInfo,
|
|
18
|
+
principalId: managedIdentity.principalId,
|
|
19
|
+
});
|
|
20
|
+
if (lock)
|
|
21
|
+
(0, Locker_1.default)({
|
|
22
|
+
name,
|
|
23
|
+
resource: managedIdentity,
|
|
24
|
+
});
|
|
25
|
+
return managedIdentity;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckFzc2lnbmVkSWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXpBZC9Vc2VyQXNzaWduZWRJZGVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDhDQUE4QztBQUM5Qyw2Q0FBMEQ7QUFDMUQsMkNBQW9DO0FBQ3BDLHFDQUFvRDtBQU1wRCxrQkFBZSxDQUFDLEVBQ2QsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLE9BQU8sRUFDUCxTQUFTLEVBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxhQUFhLEdBQ1AsRUFBRSxFQUFFO0lBQ1YsSUFBSSxHQUFHLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxlQUFlLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUNwRSxJQUFJLEVBQ0o7UUFDRSxZQUFZLEVBQUUsSUFBSTtRQUNsQixHQUFHLEtBQUs7S0FDVCxFQUNELEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQ2hELENBQUM7SUFFRixJQUFBLGlDQUF3QixFQUFDO1FBQ3ZCLElBQUk7UUFDSixPQUFPO1FBQ1AsS0FBSztRQUNMLFNBQVM7UUFDVCxXQUFXLEVBQUUsZUFBZSxDQUFDLFdBQVc7S0FDekMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxJQUFJO1FBQ04sSUFBQSxnQkFBTSxFQUFDO1lBQ0wsSUFBSTtZQUNKLFFBQVEsRUFBRSxlQUFlO1NBQzFCLENBQUMsQ0FBQztJQUVMLE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUMsQ0FBQyJ9
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const types_1 = require("./types");
|
|
4
|
+
const KeyGenetators_1 = require("../Core/KeyGenetators");
|
|
5
|
+
const containerservice_1 = require("@pulumi/azure-native/containerservice");
|
|
6
|
+
const Aks_1 = require("../Aks");
|
|
7
|
+
class AksBuilder extends types_1.ResourcesBuilderAsync {
|
|
8
|
+
//Instances
|
|
9
|
+
_sshInstance = undefined;
|
|
10
|
+
_askInstance = undefined;
|
|
11
|
+
//Props
|
|
12
|
+
_sshProps = undefined;
|
|
13
|
+
_nodePoolsProps = [];
|
|
14
|
+
_addonProps = undefined;
|
|
15
|
+
_featureProps = undefined;
|
|
16
|
+
_authProps = undefined;
|
|
17
|
+
_tier = containerservice_1.ManagedClusterSKUTier.Free;
|
|
18
|
+
_networkProps = undefined;
|
|
19
|
+
_defaultNode = undefined;
|
|
20
|
+
_importProps = undefined;
|
|
21
|
+
constructor({ ...others }) {
|
|
22
|
+
super(others);
|
|
23
|
+
}
|
|
24
|
+
//Info collection methods
|
|
25
|
+
withNewSsh(props) {
|
|
26
|
+
this._sshProps = props;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
withNodePool(props) {
|
|
30
|
+
this._nodePoolsProps.push(props);
|
|
31
|
+
return this;
|
|
32
|
+
}
|
|
33
|
+
withAddon(props) {
|
|
34
|
+
this._addonProps = props;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
withFeature(props) {
|
|
38
|
+
this._featureProps = props;
|
|
39
|
+
return this;
|
|
40
|
+
}
|
|
41
|
+
withAuth(props) {
|
|
42
|
+
this._authProps = props;
|
|
43
|
+
return this;
|
|
44
|
+
}
|
|
45
|
+
withTier(tier) {
|
|
46
|
+
this._tier = tier;
|
|
47
|
+
return this;
|
|
48
|
+
}
|
|
49
|
+
withNetwork(props) {
|
|
50
|
+
this._networkProps = props;
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
withDefaultNodePool(props) {
|
|
54
|
+
this._defaultNode = props;
|
|
55
|
+
return this;
|
|
56
|
+
}
|
|
57
|
+
import(props) {
|
|
58
|
+
this._importProps = props;
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
//Build Methods
|
|
62
|
+
buildSsh() {
|
|
63
|
+
this._sshInstance = (0, KeyGenetators_1.generateSsh)({
|
|
64
|
+
...this.commonProps,
|
|
65
|
+
...this._sshProps,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
async buildAsk() {
|
|
69
|
+
const sshKey = this._sshInstance.lists.getPublicKey();
|
|
70
|
+
this._askInstance = await (0, Aks_1.default)({
|
|
71
|
+
...this.commonProps,
|
|
72
|
+
addon: this._addonProps,
|
|
73
|
+
aksAccess: this._authProps,
|
|
74
|
+
tier: this._tier,
|
|
75
|
+
linux: {
|
|
76
|
+
adminUsername: this._sshInstance.userName,
|
|
77
|
+
sshKeys: [sshKey],
|
|
78
|
+
},
|
|
79
|
+
defaultNodePool: this._defaultNode,
|
|
80
|
+
nodePools: this._nodePoolsProps,
|
|
81
|
+
features: this._featureProps,
|
|
82
|
+
network: this._networkProps,
|
|
83
|
+
importUri: this._importProps?.id,
|
|
84
|
+
ignoreChanges: this._importProps?.ignoreChanges,
|
|
85
|
+
//nodeResourceGroup: getResourceGroupName(""),
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
async build() {
|
|
89
|
+
this.buildSsh();
|
|
90
|
+
await this.buildAsk();
|
|
91
|
+
return { ssh: this._sshInstance, aks: this._askInstance };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.default = (props) => new AksBuilder(props);
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWtzQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9CdWlsZGVyL0Frc0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FXaUI7QUFDakIseURBQWdFO0FBQ2hFLDRFQUE4RTtBQUM5RSxnQ0FRZ0I7QUFFaEIsTUFBTSxVQUNKLFNBQVEsNkJBQXdDO0lBUWhELFdBQVc7SUFDSCxZQUFZLEdBQTJCLFNBQVMsQ0FBQztJQUNqRCxZQUFZLEdBQTJCLFNBQVMsQ0FBQztJQUV6RCxPQUFPO0lBQ0MsU0FBUyxHQUFnQyxTQUFTLENBQUM7SUFDbkQsZUFBZSxHQUF1QixFQUFFLENBQUM7SUFDekMsV0FBVyxHQUE4QixTQUFTLENBQUM7SUFDbkQsYUFBYSxHQUFnQyxTQUFTLENBQUM7SUFDdkQsVUFBVSxHQUErQixTQUFTLENBQUM7SUFDbkQsS0FBSyxHQUEwQix3Q0FBcUIsQ0FBQyxJQUFJLENBQUM7SUFDMUQsYUFBYSxHQUFnQyxTQUFTLENBQUM7SUFDdkQsWUFBWSxHQUF3QyxTQUFTLENBQUM7SUFDOUQsWUFBWSxHQUErQixTQUFTLENBQUM7SUFFN0QsWUFBWSxFQUFFLEdBQUcsTUFBTSxFQUFtQjtRQUN4QyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELHlCQUF5QjtJQUNsQixVQUFVLENBQUMsS0FBc0I7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQXVCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNNLFNBQVMsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFD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
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const IpAddressPrefix_1 = require("../VNet/IpAddressPrefix");
|
|
4
|
+
const Firewall_1 = require("../VNet/Firewall");
|
|
5
|
+
const Vnet_1 = require("../VNet/Vnet");
|
|
6
|
+
const NatGateway_1 = require("../VNet/NatGateway");
|
|
7
|
+
const NetworkPeering_1 = require("../VNet/NetworkPeering");
|
|
8
|
+
const VPNGateway_1 = require("../VNet/VPNGateway");
|
|
9
|
+
const types_1 = require("./types");
|
|
10
|
+
const Helper_1 = require("../VNet/Helper");
|
|
11
|
+
const Bastion_1 = require("../VNet/Bastion");
|
|
12
|
+
const outboundIpName = "outbound";
|
|
13
|
+
class VnetBuilder extends types_1.ResourcesBuilder {
|
|
14
|
+
/** The Props */
|
|
15
|
+
_subnetProps = undefined;
|
|
16
|
+
_vnetProps;
|
|
17
|
+
_firewallProps = undefined;
|
|
18
|
+
_bastionProps = undefined;
|
|
19
|
+
_natGatewayEnabled = false;
|
|
20
|
+
_vpnGatewayProps = undefined;
|
|
21
|
+
_securityRules = undefined;
|
|
22
|
+
_routeRules = undefined;
|
|
23
|
+
_peeringProps = [];
|
|
24
|
+
_logInfo = undefined;
|
|
25
|
+
_ipType = "prefix";
|
|
26
|
+
/** The Instances */
|
|
27
|
+
_ipAddressInstance = undefined;
|
|
28
|
+
_firewallInstance = undefined;
|
|
29
|
+
_vnetInstance = undefined;
|
|
30
|
+
_natGatewayInstance = undefined;
|
|
31
|
+
_vnpGatewayInstance = undefined;
|
|
32
|
+
constructor({ subnets, dnsServers, addressSpaces, ...commonProps }) {
|
|
33
|
+
super(commonProps);
|
|
34
|
+
this._subnetProps = subnets;
|
|
35
|
+
this._vnetProps = { dnsServers, addressSpaces };
|
|
36
|
+
}
|
|
37
|
+
asHub() {
|
|
38
|
+
return this;
|
|
39
|
+
}
|
|
40
|
+
asSpoke() {
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
withPublicIpAddress(type) {
|
|
44
|
+
this._ipType = type;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
withNatGateway() {
|
|
48
|
+
this._natGatewayEnabled = true;
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
withVpnGateway(props) {
|
|
52
|
+
this._vpnGatewayProps = props;
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
withFirewall(props) {
|
|
56
|
+
this._firewallProps = props;
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
withBastion(props) {
|
|
60
|
+
this._bastionProps = props;
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
withSecurityRules(rules) {
|
|
64
|
+
if (!this._securityRules)
|
|
65
|
+
this._securityRules = rules;
|
|
66
|
+
else
|
|
67
|
+
this._securityRules.push(...rules);
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
withRouteRules(rules) {
|
|
71
|
+
if (!this._routeRules)
|
|
72
|
+
this._routeRules = rules;
|
|
73
|
+
else
|
|
74
|
+
this._routeRules.push(...rules);
|
|
75
|
+
return this;
|
|
76
|
+
}
|
|
77
|
+
peeringTo(props) {
|
|
78
|
+
this._peeringProps.push(props);
|
|
79
|
+
return this;
|
|
80
|
+
}
|
|
81
|
+
withLogInfo(info) {
|
|
82
|
+
this._logInfo = info;
|
|
83
|
+
return this;
|
|
84
|
+
}
|
|
85
|
+
/** Builders methods */
|
|
86
|
+
// private validate() {
|
|
87
|
+
// if (this._firewallProps) {
|
|
88
|
+
// if (!this._firewallProps.sku)
|
|
89
|
+
// this._firewallProps.sku = this._natGatewayEnabled
|
|
90
|
+
// ? { tier: "Basic", name: "AZFW_VNet" }
|
|
91
|
+
// : { tier: "Basic", name: "AZFW_VNet" };
|
|
92
|
+
//
|
|
93
|
+
// // if (this._natGatewayEnabled && this._firewallProps.sku.tier === "Basic")
|
|
94
|
+
// // throw new Error(
|
|
95
|
+
// // 'The Firewall tier "Basic" is not support Nat Gateway.',
|
|
96
|
+
// // );
|
|
97
|
+
// }
|
|
98
|
+
// }
|
|
99
|
+
buildIpAddress() {
|
|
100
|
+
const ipNames = [];
|
|
101
|
+
//No gateway and no firewall then Do nothing
|
|
102
|
+
if (!this._natGatewayEnabled && !this._firewallProps)
|
|
103
|
+
return;
|
|
104
|
+
//Add outbound Ipaddress for Firewall alone
|
|
105
|
+
if (!this._natGatewayEnabled && this._firewallProps) {
|
|
106
|
+
ipNames.push(outboundIpName);
|
|
107
|
+
}
|
|
108
|
+
//Create IpPrefix
|
|
109
|
+
this._ipAddressInstance = (0, IpAddressPrefix_1.default)({
|
|
110
|
+
...this.commonProps,
|
|
111
|
+
ipAddresses: ipNames.map((n) => ({ name: n })),
|
|
112
|
+
createPrefix: this._ipType === "prefix",
|
|
113
|
+
config: { version: "IPv4", allocationMethod: "Static" },
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
buildNatGateway() {
|
|
117
|
+
if (!this._natGatewayEnabled || !this._ipAddressInstance)
|
|
118
|
+
return;
|
|
119
|
+
this._natGatewayInstance = (0, NatGateway_1.default)({
|
|
120
|
+
...this.commonProps,
|
|
121
|
+
publicIpAddresses: this._ipType === "individual"
|
|
122
|
+
? Object.keys(this._ipAddressInstance.addresses).map((k) => this._ipAddressInstance.addresses[k].id)
|
|
123
|
+
: undefined,
|
|
124
|
+
publicIpPrefixes: this._ipType === "prefix"
|
|
125
|
+
? [this._ipAddressInstance.addressPrefix.id]
|
|
126
|
+
: undefined,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
buildVnet() {
|
|
130
|
+
const subnets = this._subnetProps
|
|
131
|
+
? Object.keys(this._subnetProps).map((k) => ({
|
|
132
|
+
name: k,
|
|
133
|
+
//Link all subnets to nate gateway if available without a firewall.
|
|
134
|
+
enableNatGateway: this._natGatewayEnabled && !Boolean(this._firewallInstance),
|
|
135
|
+
//However, till able to overwrite from outside.
|
|
136
|
+
...this._subnetProps[k],
|
|
137
|
+
}))
|
|
138
|
+
: [];
|
|
139
|
+
this._vnetInstance = (0, Vnet_1.default)({
|
|
140
|
+
...this.commonProps,
|
|
141
|
+
...this._vnetProps,
|
|
142
|
+
subnets,
|
|
143
|
+
natGateway: this._natGatewayInstance,
|
|
144
|
+
features: {
|
|
145
|
+
//Only create Security group when firewall is not there
|
|
146
|
+
securityGroup: {
|
|
147
|
+
enabled: !this._firewallProps,
|
|
148
|
+
allowOutboundInternetAccess: !Boolean(this._ipAddressInstance) && !this._natGatewayEnabled,
|
|
149
|
+
rules: this._securityRules,
|
|
150
|
+
},
|
|
151
|
+
//Route tables
|
|
152
|
+
routeTable: {
|
|
153
|
+
enabled: this._routeRules && this._routeRules.length > 0,
|
|
154
|
+
rules: this._routeRules,
|
|
155
|
+
},
|
|
156
|
+
//Firewall
|
|
157
|
+
firewall: this._firewallProps
|
|
158
|
+
? {
|
|
159
|
+
...this._firewallProps.subnet,
|
|
160
|
+
enableNatGateway: this._natGatewayEnabled,
|
|
161
|
+
}
|
|
162
|
+
: undefined,
|
|
163
|
+
//Bastion
|
|
164
|
+
bastion: this._bastionProps
|
|
165
|
+
? {
|
|
166
|
+
...this._bastionProps.subnet,
|
|
167
|
+
}
|
|
168
|
+
: undefined,
|
|
169
|
+
//Gateway
|
|
170
|
+
gatewaySubnet: this._vpnGatewayProps
|
|
171
|
+
? { addressPrefix: this._vpnGatewayProps.subnetSpace }
|
|
172
|
+
: undefined,
|
|
173
|
+
},
|
|
174
|
+
//networkPeerings: peerings,
|
|
175
|
+
dependsOn: this._firewallInstance?.firewall
|
|
176
|
+
? this._firewallInstance?.firewall
|
|
177
|
+
: this._natGatewayInstance
|
|
178
|
+
? this._natGatewayInstance
|
|
179
|
+
: undefined,
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
buildFirewall() {
|
|
183
|
+
if (!this._firewallProps)
|
|
184
|
+
return;
|
|
185
|
+
const publicIpAddress = this._ipAddressInstance?.addresses[outboundIpName];
|
|
186
|
+
const firewallSubnetId = this._vnetInstance?.firewallSubnet?.apply((s) => s?.id);
|
|
187
|
+
const manageSubnetId = this._vnetInstance?.firewallManageSubnet?.apply((s) => s?.id);
|
|
188
|
+
this._firewallInstance = (0, Firewall_1.default)({
|
|
189
|
+
...this.commonProps,
|
|
190
|
+
...this._firewallProps,
|
|
191
|
+
outbound: [
|
|
192
|
+
{
|
|
193
|
+
subnetId: firewallSubnetId,
|
|
194
|
+
//Using Force Tunneling mode if Nat gateway is enabled.
|
|
195
|
+
publicIpAddress: this._natGatewayEnabled
|
|
196
|
+
? undefined
|
|
197
|
+
: publicIpAddress,
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
//This is required for Force Tunneling mode
|
|
201
|
+
management: manageSubnetId
|
|
202
|
+
? {
|
|
203
|
+
subnetId: manageSubnetId,
|
|
204
|
+
}
|
|
205
|
+
: undefined,
|
|
206
|
+
monitorConfig: this._logInfo
|
|
207
|
+
? {
|
|
208
|
+
logWpId: this._logInfo.logWp.id,
|
|
209
|
+
}
|
|
210
|
+
: undefined,
|
|
211
|
+
dependsOn: this._ipAddressInstance?.addressPrefix,
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
buildVpnGateway() {
|
|
215
|
+
if (!this._vpnGatewayProps)
|
|
216
|
+
return;
|
|
217
|
+
const subnetId = this._vnetInstance.gatewaySubnet?.apply((s) => s?.id);
|
|
218
|
+
if (!subnetId)
|
|
219
|
+
return;
|
|
220
|
+
this._vnpGatewayInstance = (0, VPNGateway_1.default)({
|
|
221
|
+
...this.commonProps,
|
|
222
|
+
...this._vpnGatewayProps,
|
|
223
|
+
subnetId,
|
|
224
|
+
dependsOn: this._vnetInstance.vnet,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
buildBastion() {
|
|
228
|
+
if (!this._bastionProps || !this._vnetInstance?.bastionSubnet)
|
|
229
|
+
return;
|
|
230
|
+
(0, Bastion_1.default)({
|
|
231
|
+
...this.commonProps,
|
|
232
|
+
...this._bastionProps,
|
|
233
|
+
subnetId: this._vnetInstance.bastionSubnet.apply((s) => s.id),
|
|
234
|
+
dependsOn: [this._vnetInstance.vnet],
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
buildPeering() {
|
|
238
|
+
if (!this._peeringProps || !this._vnetInstance)
|
|
239
|
+
return;
|
|
240
|
+
this._peeringProps.forEach((p) => {
|
|
241
|
+
let info = undefined;
|
|
242
|
+
if ("groupName" in p) {
|
|
243
|
+
info = (0, Helper_1.getVnetInfo)(p.groupName);
|
|
244
|
+
}
|
|
245
|
+
else if ("vnetId" in p) {
|
|
246
|
+
info = (0, Helper_1.parseVnetInfoFromId)(p.vnetId);
|
|
247
|
+
}
|
|
248
|
+
if (info)
|
|
249
|
+
(0, NetworkPeering_1.default)({
|
|
250
|
+
direction: p.direction ?? "Bidirectional",
|
|
251
|
+
firstVnet: {
|
|
252
|
+
vnetName: this._vnetInstance.vnet.name,
|
|
253
|
+
resourceGroupName: this.commonProps.group.resourceGroupName,
|
|
254
|
+
},
|
|
255
|
+
secondVnet: info,
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
build() {
|
|
260
|
+
//this.validate();
|
|
261
|
+
this.buildIpAddress();
|
|
262
|
+
this.buildNatGateway();
|
|
263
|
+
this.buildVnet();
|
|
264
|
+
this.buildFirewall();
|
|
265
|
+
this.buildVpnGateway();
|
|
266
|
+
this.buildBastion();
|
|
267
|
+
this.buildPeering();
|
|
268
|
+
return {
|
|
269
|
+
publicIpAddress: this._ipAddressInstance,
|
|
270
|
+
firewall: this._firewallInstance,
|
|
271
|
+
vnet: this._vnetInstance,
|
|
272
|
+
natGateway: this._natGatewayInstance,
|
|
273
|
+
//peerings: this._peeringInstances,
|
|
274
|
+
vnpGateway: this._vnpGatewayInstance,
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
exports.default = (props) => new VnetBuilder(props);
|
|
279
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVm5ldEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQnVpbGRlci9WbmV0QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZEQUVpQztBQUdqQywrQ0FBNEQ7QUFDNUQsdUNBQWdEO0FBRWhELG1EQUE0QztBQUc1QywyREFBb0Q7QUFFcEQsbURBQTRDO0FBQzVDLG1DQWNpQjtBQUNqQiwyQ0FJd0I7QUFDeEIsNkNBQXNDO0FBRXRDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQztBQUVsQyxNQUFNLFdBQ0osU0FBUSx3QkFBb0M7SUFHNUMsZ0JBQWdCO0lBQ0MsWUFBWSxHQUFvQyxTQUFTLENBQUM7SUFDMUQsVUFBVSxDQUE0QjtJQUMvQyxjQUFjLEdBQXNDLFNBQVMsQ0FBQztJQUM5RCxhQUFhLEdBQXFDLFNBQVMsQ0FBQztJQUM1RCxrQkFBa0IsR0FBYSxLQUFLLENBQUM7SUFDckMsZ0JBQWdCLEdBQXdDLFNBQVMsQ0FBQztJQUNsRSxjQUFjLEdBQXlDLFNBQVMsQ0FBQztJQUNqRSxXQUFXLEdBQ2pCLFNBQVMsQ0FBQztJQUNKLGFBQWEsR0FBbUIsRUFBRSxDQUFDO0lBQ25DLFFBQVEsR0FBK0IsU0FBUyxDQUFDO0lBQ2pELE9BQU8sR0FBNEIsUUFBUSxDQUFDO0lBRXBELG9CQUFvQjtJQUNaLGtCQUFrQixHQUN4QixTQUFTLENBQUM7SUFDSixpQkFBaUIsR0FBK0IsU0FBUyxDQUFDO0lBQzFELGFBQWEsR0FBMkIsU0FBUyxDQUFDO0lBQ2xELG1CQUFtQixHQUFtQyxTQUFTLENBQUM7SUFDaEUsbUJBQW1CLEdBQ3pCLFNBQVMsQ0FBQztJQUVaLFlBQVksRUFDVixPQUFPLEVBQ1AsVUFBVSxFQUNWLGFBQWEsRUFDYixHQUFHLFdBQVcsRUFDRztRQUNqQixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVB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
|
package/Builder/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VnetBuilder = exports.AksBuilder = void 0;
|
|
4
|
+
var AksBuilder_1 = require("./AksBuilder");
|
|
5
|
+
Object.defineProperty(exports, "AksBuilder", { enumerable: true, get: function () { return AksBuilder_1.default; } });
|
|
6
|
+
var VnetBuilder_1 = require("./VnetBuilder");
|
|
7
|
+
Object.defineProperty(exports, "VnetBuilder", { enumerable: true, get: function () { return VnetBuilder_1.default; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQnVpbGRlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUQ7QUFBNUMsd0dBQUEsT0FBTyxPQUFjO0FBQzlCLDZDQUF1RDtBQUE5QywwR0FBQSxPQUFPLE9BQWUifQ==
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { BasicResourceArgs, KeyVaultInfo, ResourceGroupInfo } from "../types";
|
|
2
|
+
import { RouteArgs, CustomSecurityRuleArgs } from "../VNet/types";
|
|
3
|
+
import { VnetProps, VnetResult } from "../VNet/Vnet";
|
|
4
|
+
import { SubnetProps } from "../VNet/Subnet";
|
|
5
|
+
import { Input, Resource } from "@pulumi/pulumi";
|
|
6
|
+
import { FirewallProps, FirewallResult } from "../VNet/Firewall";
|
|
7
|
+
import { VpnGatewayProps } from "../VNet/VPNGateway";
|
|
8
|
+
import { LogInfoResults } from "../Logs/Helpers";
|
|
9
|
+
import { PublicIpAddressPrefixResult } from "../VNet/IpAddressPrefix";
|
|
10
|
+
import * as network from "@pulumi/azure-native/network";
|
|
11
|
+
import { SshGenerationProps, SshResults } from "../Core/KeyGenetators";
|
|
12
|
+
import { AksAccessProps, AksNetworkProps, AksNodePoolProps, AksResults, AskAddonProps, AskFeatureProps, DefaultAksNodePoolProps } from "../Aks";
|
|
13
|
+
import * as native from "@pulumi/azure-native";
|
|
14
|
+
import { PeeringDirectionType } from "../VNet/NetworkPeering";
|
|
15
|
+
export type CommonBuilderProps = {
|
|
16
|
+
name: string;
|
|
17
|
+
group: ResourceGroupInfo;
|
|
18
|
+
vaultInfo: KeyVaultInfo;
|
|
19
|
+
dependsOn?: Input<Input<Resource>[]> | Input<Resource>;
|
|
20
|
+
};
|
|
21
|
+
export type CommonOmit<T> = Omit<T, keyof CommonBuilderProps>;
|
|
22
|
+
export interface IResourcesBuilder<TResults> {
|
|
23
|
+
commonProps: CommonBuilderProps;
|
|
24
|
+
build: () => TResults;
|
|
25
|
+
}
|
|
26
|
+
export declare abstract class ResourcesBuilder<TResults> implements IResourcesBuilder<TResults> {
|
|
27
|
+
commonProps: CommonBuilderProps;
|
|
28
|
+
protected constructor(commonProps: CommonBuilderProps);
|
|
29
|
+
abstract build(): TResults;
|
|
30
|
+
}
|
|
31
|
+
export interface IResourcesBuilderAsync<TResults> extends Omit<IResourcesBuilder<TResults>, "build"> {
|
|
32
|
+
build: () => Promise<TResults>;
|
|
33
|
+
}
|
|
34
|
+
export declare abstract class ResourcesBuilderAsync<TResults> implements IResourcesBuilderAsync<TResults> {
|
|
35
|
+
commonProps: CommonBuilderProps;
|
|
36
|
+
constructor(commonProps: CommonBuilderProps);
|
|
37
|
+
abstract build(): Promise<TResults>;
|
|
38
|
+
}
|
|
39
|
+
export type VnetBuilderProps = CommonBuilderProps & {
|
|
40
|
+
subnets?: SubnetCreationProps;
|
|
41
|
+
} & Pick<VnetProps, "addressSpaces" | "dnsServers">;
|
|
42
|
+
export type SubnetCreationProps = Record<string, Omit<SubnetProps, "name">>;
|
|
43
|
+
export type SubnetPrefixCreationProps = {
|
|
44
|
+
addressPrefix: string;
|
|
45
|
+
};
|
|
46
|
+
export type BastionCreationProps = {
|
|
47
|
+
subnet: SubnetPrefixCreationProps;
|
|
48
|
+
} & Pick<BasicResourceArgs, "importUri" | "ignoreChanges">;
|
|
49
|
+
export type PeeringProps = {
|
|
50
|
+
groupName: string;
|
|
51
|
+
direction?: PeeringDirectionType;
|
|
52
|
+
} | {
|
|
53
|
+
vnetId: Input<string>;
|
|
54
|
+
direction?: PeeringDirectionType;
|
|
55
|
+
};
|
|
56
|
+
export type FirewallCreationProps = {
|
|
57
|
+
subnet: SubnetPrefixCreationProps & {
|
|
58
|
+
managementAddressPrefix: string;
|
|
59
|
+
};
|
|
60
|
+
} & CommonOmit<Omit<FirewallProps, "outbound" | "management">>;
|
|
61
|
+
export type VpnGatewayCreationProps = Pick<VpnGatewayProps, "sku" | "vpnClientAddressPools"> & {
|
|
62
|
+
subnetSpace: string;
|
|
63
|
+
};
|
|
64
|
+
export interface IVnetBuilderStart {
|
|
65
|
+
asHub: () => IPublicIpBuilder;
|
|
66
|
+
asSpoke: () => IVnetBuilder;
|
|
67
|
+
}
|
|
68
|
+
export interface IPublicIpBuilder {
|
|
69
|
+
withPublicIpAddress: (type: "prefix" | "individual") => IGatewayFireWallBuilder;
|
|
70
|
+
}
|
|
71
|
+
export interface IFireWallOrVnetBuilder extends IResourcesBuilder<VnetBuilderResults> {
|
|
72
|
+
withFirewall: (props: FirewallCreationProps) => IVnetBuilder;
|
|
73
|
+
}
|
|
74
|
+
export interface IGatewayFireWallBuilder extends IFireWallOrVnetBuilder {
|
|
75
|
+
withNatGateway: () => IFireWallOrVnetBuilder;
|
|
76
|
+
}
|
|
77
|
+
export interface IVnetBuilder extends IResourcesBuilder<VnetBuilderResults> {
|
|
78
|
+
withBastion: (props: BastionCreationProps) => IVnetBuilder;
|
|
79
|
+
peeringTo: (props: PeeringProps) => IVnetBuilder;
|
|
80
|
+
withSecurityRules: (rules: CustomSecurityRuleArgs[]) => IVnetBuilder;
|
|
81
|
+
withRouteRules: (rules: RouteArgs[]) => IVnetBuilder;
|
|
82
|
+
withLogInfo: (info: LogInfoResults) => IVnetBuilder;
|
|
83
|
+
withVpnGateway: (props: VpnGatewayCreationProps) => IVnetBuilder;
|
|
84
|
+
}
|
|
85
|
+
export type VnetBuilderResults = {
|
|
86
|
+
publicIpAddress: PublicIpAddressPrefixResult | undefined;
|
|
87
|
+
firewall: FirewallResult | undefined;
|
|
88
|
+
vnet: VnetResult;
|
|
89
|
+
natGateway: network.NatGateway | undefined;
|
|
90
|
+
vnpGateway: network.VirtualNetworkGateway | undefined;
|
|
91
|
+
};
|
|
92
|
+
export type AksBuilderProps = CommonBuilderProps & {};
|
|
93
|
+
export type AskBuilderResults = {
|
|
94
|
+
ssh: SshResults;
|
|
95
|
+
aks: AksResults;
|
|
96
|
+
};
|
|
97
|
+
export type SshBuilderProps = Omit<SshGenerationProps, "vaultInfo" | "name">;
|
|
98
|
+
export type AksImportProps = {
|
|
99
|
+
id: string;
|
|
100
|
+
ignoreChanges?: string[];
|
|
101
|
+
};
|
|
102
|
+
export interface ISshBuilder {
|
|
103
|
+
withNewSsh: (props: SshBuilderProps) => IAskAuthBuilder;
|
|
104
|
+
}
|
|
105
|
+
export interface IAskAuthBuilder {
|
|
106
|
+
withAuth: (props: AksAccessProps) => IAksNetworkBuilder;
|
|
107
|
+
}
|
|
108
|
+
export interface IAksNetworkBuilder {
|
|
109
|
+
withNetwork: (props: AksNetworkProps) => IAksDefaultNodePoolBuilder;
|
|
110
|
+
}
|
|
111
|
+
export interface IAksDefaultNodePoolBuilder {
|
|
112
|
+
withDefaultNodePool: (props: DefaultAksNodePoolProps) => IAksBuilder;
|
|
113
|
+
}
|
|
114
|
+
export interface IAksBuilder extends IResourcesBuilderAsync<AskBuilderResults> {
|
|
115
|
+
withNodePool: (props: AksNodePoolProps) => IAksBuilder;
|
|
116
|
+
withAddon: (props: AskAddonProps) => IAksBuilder;
|
|
117
|
+
withFeature: (props: AskFeatureProps) => IAksBuilder;
|
|
118
|
+
withTier: (tier: native.containerservice.ManagedClusterSKUTier) => IAksBuilder;
|
|
119
|
+
import: (props: AksImportProps) => IAksBuilder;
|
|
120
|
+
}
|
package/Builder/types.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ResourcesBuilderAsync = exports.ResourcesBuilder = void 0;
|
|
4
|
+
class ResourcesBuilder {
|
|
5
|
+
commonProps;
|
|
6
|
+
constructor(commonProps) {
|
|
7
|
+
this.commonProps = commonProps;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
exports.ResourcesBuilder = ResourcesBuilder;
|
|
11
|
+
class ResourcesBuilderAsync {
|
|
12
|
+
commonProps;
|
|
13
|
+
constructor(commonProps) {
|
|
14
|
+
this.commonProps = commonProps;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.ResourcesBuilderAsync = ResourcesBuilderAsync;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQnVpbGRlci90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzQ0EsTUFBc0IsZ0JBQWdCO0lBR1A7SUFBN0IsWUFBNkIsV0FBK0I7UUFBL0IsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBQUcsQ0FBQztDQUVqRTtBQUxELDRDQUtDO0FBUUQsTUFBc0IscUJBQXFCO0lBR3RCO0lBQW5CLFlBQW1CLFdBQStCO1FBQS9CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUFHLENBQUM7Q0FFdkQ7QUFMRCxzREFLQyJ9
|
package/Certificate/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KeyVaultInfo } from
|
|
1
|
+
import { KeyVaultInfo } from "../types";
|
|
2
2
|
export declare const defaultAllowedUses: string[];
|
|
3
3
|
export declare const defaultCodeSignUses: string[];
|
|
4
4
|
export declare const createSelfSignCertV2: ({ dnsName, commonName, organization, allowedUses, validYears, vaultInfo, }: {
|