@drunk-pulumi/azure-components 0.0.6
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/PulumiPlugin.yaml +1 -0
- package/README.md +1 -0
- package/ResourceBuilder.d.ts +54 -0
- package/ResourceBuilder.js +71 -0
- package/aks/AzKubernetes.d.ts +55 -0
- package/aks/AzKubernetes.js +288 -0
- package/aks/ContainerRegistry.d.ts +19 -0
- package/aks/ContainerRegistry.js +119 -0
- package/aks/helpers.d.ts +6 -0
- package/aks/helpers.js +52 -0
- package/aks/index.d.ts +3 -0
- package/aks/index.js +43 -0
- package/app/AppCert.d.ts +15 -0
- package/app/AppCert.js +74 -0
- package/app/AppConfig.d.ts +18 -0
- package/app/AppConfig.js +124 -0
- package/app/AppService.d.ts +69 -0
- package/app/AppService.js +122 -0
- package/app/IoTHub.d.ts +15 -0
- package/app/IoTHub.js +80 -0
- package/app/LogicApp.d.ts +19 -0
- package/app/LogicApp.js +77 -0
- package/app/SignalR.d.ts +45 -0
- package/app/SignalR.js +125 -0
- package/app/index.d.ts +6 -0
- package/app/index.js +23 -0
- package/azAd/AppRegistration.d.ts +52 -0
- package/azAd/AppRegistration.js +165 -0
- package/azAd/AzRole.d.ts +14 -0
- package/azAd/AzRole.js +72 -0
- package/azAd/CustomRoles.d.ts +10 -0
- package/azAd/CustomRoles.js +73 -0
- package/azAd/GroupRole.d.ts +29 -0
- package/azAd/GroupRole.js +107 -0
- package/azAd/RoleAssignment.d.ts +15 -0
- package/azAd/RoleAssignment.js +63 -0
- package/azAd/UserAssignedIdentity.d.ts +17 -0
- package/azAd/UserAssignedIdentity.js +76 -0
- package/azAd/helpers/graphBuiltIn.d.ts +14 -0
- package/azAd/helpers/graphBuiltIn.js +5134 -0
- package/azAd/helpers/index.d.ts +3 -0
- package/azAd/helpers/index.js +39 -0
- package/azAd/helpers/rolesBuiltIn.d.ts +90 -0
- package/azAd/helpers/rolesBuiltIn.js +18601 -0
- package/azAd/helpers/rsRoleDefinition.d.ts +62 -0
- package/azAd/helpers/rsRoleDefinition.js +120 -0
- package/azAd/index.d.ts +7 -0
- package/azAd/index.js +24 -0
- package/base/BaseComponent.d.ts +53 -0
- package/base/BaseComponent.js +98 -0
- package/base/BaseResourceComponent.d.ts +108 -0
- package/base/BaseResourceComponent.js +180 -0
- package/base/helpers.d.ts +12 -0
- package/base/helpers.js +29 -0
- package/base/index.d.ts +3 -0
- package/base/index.js +43 -0
- package/common/PGPGenerator.d.ts +26 -0
- package/common/PGPGenerator.js +72 -0
- package/common/RandomPassword.d.ts +21 -0
- package/common/RandomPassword.js +84 -0
- package/common/RandomString.d.ts +20 -0
- package/common/RandomString.js +74 -0
- package/common/ResourceLocker.d.ts +9 -0
- package/common/ResourceLocker.js +52 -0
- package/common/RsGroup.d.ts +20 -0
- package/common/RsGroup.js +85 -0
- package/common/SshGenerator.d.ts +17 -0
- package/common/SshGenerator.js +66 -0
- package/common/index.d.ts +5 -0
- package/common/index.js +22 -0
- package/database/AzSql.d.ts +71 -0
- package/database/AzSql.js +283 -0
- package/database/MySql.d.ts +35 -0
- package/database/MySql.js +181 -0
- package/database/Postgres.d.ts +32 -0
- package/database/Postgres.js +171 -0
- package/database/Redis.d.ts +26 -0
- package/database/Redis.js +125 -0
- package/database/helpers.d.ts +7 -0
- package/database/helpers.js +52 -0
- package/database/index.d.ts +5 -0
- package/database/index.js +45 -0
- package/helpers/Location/LocationBuiltIn.d.ts +6 -0
- package/helpers/Location/LocationBuiltIn.js +493 -0
- package/helpers/Location/index.d.ts +3 -0
- package/helpers/Location/index.js +25 -0
- package/helpers/autoTags.d.ts +1 -0
- package/helpers/autoTags.js +27 -0
- package/helpers/azureEnv.d.ts +21 -0
- package/helpers/azureEnv.js +102 -0
- package/helpers/configHelper.d.ts +5 -0
- package/helpers/configHelper.js +54 -0
- package/helpers/index.d.ts +4 -0
- package/helpers/index.js +41 -0
- package/helpers/rsHelpers.d.ts +18 -0
- package/helpers/rsHelpers.js +92 -0
- package/helpers/stackEnv.d.ts +4 -0
- package/helpers/stackEnv.js +54 -0
- package/index.d.ts +14 -0
- package/index.js +53 -0
- package/logs/Logs.d.ts +48 -0
- package/logs/Logs.js +154 -0
- package/logs/helpers.d.ts +1 -0
- package/logs/helpers.js +38 -0
- package/logs/index.d.ts +1 -0
- package/logs/index.js +18 -0
- package/package.json +34 -0
- package/services/Automation.d.ts +16 -0
- package/services/Automation.js +85 -0
- package/services/AzSearch.d.ts +20 -0
- package/services/AzSearch.js +113 -0
- package/services/ServiceBus.d.ts +42 -0
- package/services/ServiceBus.js +256 -0
- package/services/index.d.ts +3 -0
- package/services/index.js +20 -0
- package/storage/StorageAccount.d.ts +53 -0
- package/storage/StorageAccount.js +261 -0
- package/storage/helpers.d.ts +24 -0
- package/storage/helpers.js +89 -0
- package/storage/index.d.ts +2 -0
- package/storage/index.js +42 -0
- package/types.d.ts +125 -0
- package/types.js +3 -0
- package/vault/EncryptionKey.d.ts +21 -0
- package/vault/EncryptionKey.js +73 -0
- package/vault/KeyVault.d.ts +31 -0
- package/vault/KeyVault.js +110 -0
- package/vault/VaultSecret.d.ts +23 -0
- package/vault/VaultSecret.js +72 -0
- package/vault/VaultSecrets.d.ts +25 -0
- package/vault/VaultSecrets.js +31 -0
- package/vault/helpers.d.ts +1 -0
- package/vault/helpers.js +13 -0
- package/vault/index.d.ts +5 -0
- package/vault/index.js +45 -0
- package/vm/DiskEncryptionSet.d.ts +16 -0
- package/vm/DiskEncryptionSet.js +74 -0
- package/vm/VirtualMachine.d.ts +45 -0
- package/vm/VirtualMachine.js +192 -0
- package/vm/helpers.d.ts +16 -0
- package/vm/helpers.js +15 -0
- package/vm/index.d.ts +3 -0
- package/vm/index.js +43 -0
- package/vnet/AzCdn.d.ts +44 -0
- package/vnet/AzCdn.js +276 -0
- package/vnet/Basion.d.ts +19 -0
- package/vnet/Basion.js +78 -0
- package/vnet/DnsZone.d.ts +36 -0
- package/vnet/DnsZone.js +113 -0
- package/vnet/Firewall.d.ts +53 -0
- package/vnet/Firewall.js +136 -0
- package/vnet/FirewallPolicies/FirewallPolicyBuilder.d.ts +18 -0
- package/vnet/FirewallPolicies/FirewallPolicyBuilder.js +91 -0
- package/vnet/FirewallPolicies/commonPolicies.d.ts +10 -0
- package/vnet/FirewallPolicies/commonPolicies.js +55 -0
- package/vnet/FirewallPolicies/index.d.ts +0 -0
- package/vnet/FirewallPolicies/index.js +2 -0
- package/vnet/IpAddresses.d.ts +36 -0
- package/vnet/IpAddresses.js +74 -0
- package/vnet/NetworkPeering.d.ts +21 -0
- package/vnet/NetworkPeering.js +85 -0
- package/vnet/PrivateDnsZone.d.ts +38 -0
- package/vnet/PrivateDnsZone.js +111 -0
- package/vnet/PrivateEndpoint.d.ts +43 -0
- package/vnet/PrivateEndpoint.js +181 -0
- package/vnet/RouteTable.d.ts +22 -0
- package/vnet/RouteTable.js +75 -0
- package/vnet/VirtualNetwork.d.ts +99 -0
- package/vnet/VirtualNetwork.js +311 -0
- package/vnet/VpnGateway.d.ts +18 -0
- package/vnet/VpnGateway.js +90 -0
- package/vnet/helpers.d.ts +16 -0
- package/vnet/helpers.js +47 -0
- package/vnet/index.d.ts +13 -0
- package/vnet/index.js +53 -0
- package/vnet/securityRules/SecurityRuleBuilder.d.ts +12 -0
- package/vnet/securityRules/SecurityRuleBuilder.js +55 -0
- package/vnet/securityRules/commonRules.d.ts +9 -0
- package/vnet/securityRules/commonRules.js +94 -0
- package/vnet/securityRules/index.d.ts +2 -0
- package/vnet/securityRules/index.js +19 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.HubVnet = void 0;
|
|
37
|
+
const network = __importStar(require("@pulumi/azure-native/network"));
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const base_1 = require("../base");
|
|
40
|
+
const Basion_1 = require("./Basion");
|
|
41
|
+
const Firewall_1 = require("./Firewall");
|
|
42
|
+
const helpers = __importStar(require("./helpers"));
|
|
43
|
+
const NetworkPeering_1 = require("./NetworkPeering");
|
|
44
|
+
const RouteTable_1 = require("./RouteTable");
|
|
45
|
+
const securityRules_1 = require("./securityRules");
|
|
46
|
+
const VpnGateway_1 = require("./VpnGateway");
|
|
47
|
+
class HubVnet extends base_1.BaseResourceComponent {
|
|
48
|
+
basion;
|
|
49
|
+
securityGroup;
|
|
50
|
+
routeTable;
|
|
51
|
+
natGateway;
|
|
52
|
+
vpnGateway;
|
|
53
|
+
firewall;
|
|
54
|
+
vnet;
|
|
55
|
+
subnets;
|
|
56
|
+
constructor(name, args, opts) {
|
|
57
|
+
super('HubVnet', name, args, opts);
|
|
58
|
+
const securityGroup = this.createSecurityGroup();
|
|
59
|
+
const routeTable = this.createRouteTable();
|
|
60
|
+
const natGateway = this.createNatGateway();
|
|
61
|
+
const { vnet, subnets } = this.createVnet({ natGateway, routeTable, securityGroup });
|
|
62
|
+
const firewall = this.createFirewall(subnets);
|
|
63
|
+
const basion = this.createBasion(subnets);
|
|
64
|
+
const vpnGateway = this.createVpnGateway(subnets);
|
|
65
|
+
//this.createOutboundRoute({ router: routeTable!, natGateway, firewall });
|
|
66
|
+
this.createPeering(vnet);
|
|
67
|
+
if (basion)
|
|
68
|
+
this.basion = { id: basion.id, resourceName: basion.resourceName };
|
|
69
|
+
if (securityGroup)
|
|
70
|
+
this.securityGroup = { id: securityGroup.id, resourceName: securityGroup.name };
|
|
71
|
+
this.routeTable = { id: routeTable.id, resourceName: routeTable.resourceName };
|
|
72
|
+
if (natGateway)
|
|
73
|
+
this.natGateway = { id: natGateway.id, resourceName: natGateway.name };
|
|
74
|
+
if (vpnGateway)
|
|
75
|
+
this.vpnGateway = { id: vpnGateway.id, resourceName: vpnGateway.resourceName };
|
|
76
|
+
if (firewall)
|
|
77
|
+
this.firewall = firewall.firewall;
|
|
78
|
+
this.vnet = { id: vnet.id, resourceName: vnet.name };
|
|
79
|
+
this.subnets = base_1.baseHelpers.recordMap(subnets, (s) => ({ id: s.id, resourceName: s.name.apply((n) => n) }));
|
|
80
|
+
this.registerOutputs();
|
|
81
|
+
}
|
|
82
|
+
getOutputs() {
|
|
83
|
+
return {
|
|
84
|
+
securityGroup: this.securityGroup,
|
|
85
|
+
routeTable: this.routeTable,
|
|
86
|
+
natGateway: this.natGateway,
|
|
87
|
+
vpnGateway: this.vpnGateway,
|
|
88
|
+
firewall: this.firewall,
|
|
89
|
+
vnet: this.vnet,
|
|
90
|
+
subnets: this.subnets,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
createSecurityGroup() {
|
|
94
|
+
const { rsGroup, securityGroup, basion } = this.args;
|
|
95
|
+
if (!securityGroup)
|
|
96
|
+
return undefined;
|
|
97
|
+
const { securityRules = [], ...props } = securityGroup;
|
|
98
|
+
if (basion) {
|
|
99
|
+
securityRules.push(...(0, securityRules_1.getBasionSecurityRules)({ bastionAddressPrefix: basion.subnetPrefix }));
|
|
100
|
+
}
|
|
101
|
+
return new network.NetworkSecurityGroup(`${this.name}-nsg`, {
|
|
102
|
+
...rsGroup,
|
|
103
|
+
...props,
|
|
104
|
+
securityRules,
|
|
105
|
+
}, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
106
|
+
}
|
|
107
|
+
createRouteTable() {
|
|
108
|
+
const { rsGroup, firewall, routeTable = {} } = this.args;
|
|
109
|
+
const { routes = [], ...routeProps } = routeTable;
|
|
110
|
+
if (firewall) {
|
|
111
|
+
routes.push({
|
|
112
|
+
name: 'Internet',
|
|
113
|
+
...helpers.defaultRouteRules.defaultInternetRoute,
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
return new RouteTable_1.RouteTable(`${this.name}-tb`, {
|
|
117
|
+
rsGroup,
|
|
118
|
+
...routeProps,
|
|
119
|
+
routes,
|
|
120
|
+
}, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
121
|
+
}
|
|
122
|
+
createNatGateway() {
|
|
123
|
+
const { rsGroup, natGateway, publicIpAddresses } = this.args;
|
|
124
|
+
if (!natGateway)
|
|
125
|
+
return undefined;
|
|
126
|
+
if (!publicIpAddresses)
|
|
127
|
+
throw new Error('PublicIpAddresses is required when NatGateway is created');
|
|
128
|
+
return new network.NatGateway(`${this.name}-ngw`, {
|
|
129
|
+
...rsGroup,
|
|
130
|
+
...natGateway,
|
|
131
|
+
sku: { name: natGateway.sku },
|
|
132
|
+
publicIpAddresses,
|
|
133
|
+
}, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
134
|
+
}
|
|
135
|
+
createVpnGateway(subnets) {
|
|
136
|
+
const { rsGroup, vpnGateway } = this.args;
|
|
137
|
+
if (!vpnGateway)
|
|
138
|
+
return undefined;
|
|
139
|
+
const vpnSubnet = subnets[helpers.AzureSubnetNames.GatewaySubnetName];
|
|
140
|
+
return new VpnGateway_1.VpnGateway(`${this.name}-vpn`, {
|
|
141
|
+
...vpnGateway,
|
|
142
|
+
rsGroup,
|
|
143
|
+
subnetId: vpnSubnet.id,
|
|
144
|
+
}, { dependsOn: vpnSubnet, parent: this });
|
|
145
|
+
}
|
|
146
|
+
createFirewall(subnets) {
|
|
147
|
+
const { rsGroup, natGateway, publicIpAddresses, firewall } = this.args;
|
|
148
|
+
if (!firewall)
|
|
149
|
+
return undefined;
|
|
150
|
+
const firewallSubnet = subnets[helpers.AzureSubnetNames.AzFirewallSubnet];
|
|
151
|
+
const firewallManageSubnet = subnets[helpers.AzureSubnetNames.AzFirewallManagementSubnet];
|
|
152
|
+
return new Firewall_1.Firewall(`${this.name}-fw`, {
|
|
153
|
+
...firewall,
|
|
154
|
+
rsGroup,
|
|
155
|
+
managementIpConfiguration: firewallManageSubnet && firewall.managementPublicIpAddress
|
|
156
|
+
? {
|
|
157
|
+
name: `${this.name}-fw-management`,
|
|
158
|
+
publicIPAddress: firewall.managementPublicIpAddress,
|
|
159
|
+
subnet: { id: firewallManageSubnet.id },
|
|
160
|
+
}
|
|
161
|
+
: undefined,
|
|
162
|
+
ipConfigurations: publicIpAddresses
|
|
163
|
+
? pulumi.output(publicIpAddresses).apply((ips) => ips.map((i, index) => ({
|
|
164
|
+
name: `${this.name}-${i.resourceName}-ip-config`,
|
|
165
|
+
//Only link the public Ip Address when nateGateway not created.
|
|
166
|
+
publicIPAddress: natGateway ? undefined : i,
|
|
167
|
+
//Only link the subnet to the first ipConfigurations
|
|
168
|
+
subnet: index === 0 ? { id: firewallSubnet.id } : undefined,
|
|
169
|
+
})))
|
|
170
|
+
: [
|
|
171
|
+
{
|
|
172
|
+
name: `${this.name}-ip-config`,
|
|
173
|
+
subnet: { id: firewallSubnet.id },
|
|
174
|
+
},
|
|
175
|
+
],
|
|
176
|
+
}, { dependsOn: firewallManageSubnet ? [firewallManageSubnet, firewallSubnet] : firewallSubnet, parent: this });
|
|
177
|
+
}
|
|
178
|
+
createBasion(subnets) {
|
|
179
|
+
const { rsGroup, basion } = this.args;
|
|
180
|
+
if (!basion)
|
|
181
|
+
return undefined;
|
|
182
|
+
const basionSubnet = subnets[helpers.AzureSubnetNames.AzBastionSubnetName];
|
|
183
|
+
return new Basion_1.Basion(`${this.name}-bastion`, {
|
|
184
|
+
...basion,
|
|
185
|
+
rsGroup,
|
|
186
|
+
subnetId: basionSubnet.id,
|
|
187
|
+
network: { ...basion.network },
|
|
188
|
+
}, { dependsOn: basionSubnet, parent: this });
|
|
189
|
+
}
|
|
190
|
+
createVnet({ natGateway, routeTable, securityGroup, }) {
|
|
191
|
+
const { rsGroup, firewall, basion, vpnGateway, vnet } = this.args;
|
|
192
|
+
const subnets = vnet.subnets ?? [];
|
|
193
|
+
const dependsOn = [];
|
|
194
|
+
if (firewall) {
|
|
195
|
+
//If NateGateway is together with Firewall, then NatGateway must be link to the Firewall Subnet only.
|
|
196
|
+
if (natGateway) {
|
|
197
|
+
subnets.forEach((s) => {
|
|
198
|
+
s.disableNatGateway = true;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
subnets.push({
|
|
202
|
+
subnetName: helpers.AzureSubnetNames.AzFirewallSubnet,
|
|
203
|
+
addressPrefix: firewall.subnetPrefix,
|
|
204
|
+
disableSecurityGroup: true,
|
|
205
|
+
disableRouteTable: false,
|
|
206
|
+
disableNatGateway: false,
|
|
207
|
+
});
|
|
208
|
+
if (firewall.managementSubnetPrefix) {
|
|
209
|
+
subnets.push({
|
|
210
|
+
subnetName: helpers.AzureSubnetNames.AzFirewallManagementSubnet,
|
|
211
|
+
addressPrefix: firewall.managementSubnetPrefix,
|
|
212
|
+
disableSecurityGroup: true,
|
|
213
|
+
disableRouteTable: true,
|
|
214
|
+
disableNatGateway: true,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (basion) {
|
|
219
|
+
subnets.push({
|
|
220
|
+
subnetName: helpers.AzureSubnetNames.AzBastionSubnetName,
|
|
221
|
+
addressPrefix: basion.subnetPrefix,
|
|
222
|
+
disableSecurityGroup: false,
|
|
223
|
+
disableRouteTable: true,
|
|
224
|
+
disableNatGateway: true,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
if (vpnGateway) {
|
|
228
|
+
subnets.push({
|
|
229
|
+
subnetName: helpers.AzureSubnetNames.GatewaySubnetName,
|
|
230
|
+
addressPrefix: vpnGateway.subnetPrefix,
|
|
231
|
+
disableSecurityGroup: true,
|
|
232
|
+
disableRouteTable: true,
|
|
233
|
+
disableNatGateway: true,
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
if (natGateway)
|
|
237
|
+
dependsOn.push(natGateway);
|
|
238
|
+
if (routeTable)
|
|
239
|
+
dependsOn.push(routeTable);
|
|
240
|
+
if (securityGroup)
|
|
241
|
+
dependsOn.push(securityGroup);
|
|
242
|
+
const vn = new network.VirtualNetwork(`${this.name}-vnet`, {
|
|
243
|
+
...rsGroup,
|
|
244
|
+
...vnet,
|
|
245
|
+
addressSpace: {
|
|
246
|
+
addressPrefixes: vnet.addressPrefixes ?? subnets.map((s) => s.addressPrefix),
|
|
247
|
+
},
|
|
248
|
+
subnets: [],
|
|
249
|
+
virtualNetworkPeerings: [],
|
|
250
|
+
enableVmProtection: true,
|
|
251
|
+
encryption: {
|
|
252
|
+
enabled: true,
|
|
253
|
+
enforcement: network.VirtualNetworkEncryptionEnforcement.AllowUnencrypted,
|
|
254
|
+
},
|
|
255
|
+
}, { dependsOn, ignoreChanges: ['virtualNetworkPeerings', 'subnets'], parent: this });
|
|
256
|
+
const subs = this.createSubnets({
|
|
257
|
+
subnets,
|
|
258
|
+
vnet: vn,
|
|
259
|
+
natGateway,
|
|
260
|
+
routeTable,
|
|
261
|
+
securityGroup,
|
|
262
|
+
});
|
|
263
|
+
return { vnet: vn, subnets: subs };
|
|
264
|
+
}
|
|
265
|
+
createSubnets({ subnets, vnet, natGateway, routeTable, securityGroup, }) {
|
|
266
|
+
const { rsGroup, vnet: { defaultOutboundAccess }, } = this.args;
|
|
267
|
+
const rs = {};
|
|
268
|
+
subnets
|
|
269
|
+
.sort((a, b) => a.subnetName.localeCompare(b.subnetName))
|
|
270
|
+
.map((s) => (rs[s.subnetName] = new network.Subnet(`${this.name}-${s.subnetName}`, {
|
|
271
|
+
...s,
|
|
272
|
+
...rsGroup,
|
|
273
|
+
virtualNetworkName: vnet.name,
|
|
274
|
+
//Not allows outbound by default and it will be controlling by NatGateway or Firewall
|
|
275
|
+
defaultOutboundAccess: defaultOutboundAccess ?? false,
|
|
276
|
+
routeTable: s.disableRouteTable ? undefined : routeTable ? { id: routeTable.id } : undefined,
|
|
277
|
+
networkSecurityGroup: s.disableSecurityGroup
|
|
278
|
+
? undefined
|
|
279
|
+
: securityGroup
|
|
280
|
+
? { id: securityGroup.id }
|
|
281
|
+
: undefined,
|
|
282
|
+
natGateway: s.disableNatGateway ? undefined : natGateway ? { id: natGateway.id } : undefined,
|
|
283
|
+
}, { dependsOn: vnet, deleteBeforeReplace: true, parent: this })));
|
|
284
|
+
return rs;
|
|
285
|
+
}
|
|
286
|
+
// private createOutboundRoute({
|
|
287
|
+
// router,
|
|
288
|
+
// firewall,
|
|
289
|
+
// natGateway,
|
|
290
|
+
// }: {
|
|
291
|
+
// router: RouteTable;
|
|
292
|
+
// natGateway?: network.NatGateway;
|
|
293
|
+
// firewall?: Firewall;
|
|
294
|
+
// }) {
|
|
295
|
+
// if (natGateway && !firewall) {
|
|
296
|
+
// return router.addRoute('Internet-via-Gateway', helpers.defaultRouteRules.defaultGatewayRoute);
|
|
297
|
+
// }
|
|
298
|
+
// }
|
|
299
|
+
createPeering(vnet) {
|
|
300
|
+
const { vnetPeering } = this.args;
|
|
301
|
+
if (!vnetPeering)
|
|
302
|
+
return undefined;
|
|
303
|
+
return new NetworkPeering_1.NetworkPeering(`${this.name}-peering`, {
|
|
304
|
+
...vnetPeering,
|
|
305
|
+
firstVnet: { id: vnet.id, resourceName: vnet.name },
|
|
306
|
+
secondVnet: vnetPeering.vnet,
|
|
307
|
+
}, { dependsOn: vnet, parent: this });
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
exports.HubVnet = HubVnet;
|
|
311
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmlydHVhbE5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm5ldC9WaXJ0dWFsTmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzRUFBd0Q7QUFFeEQsdURBQXlDO0FBQ3pDLGtDQUE2RTtBQUU3RSxxQ0FBOEM7QUFDOUMseUNBQW9EO0FBQ3BELG1EQUFxQztBQUNyQyxxREFBc0U7QUFDdEUsNkNBQTBEO0FBQzFELG1EQUF5RDtBQUN6RCw2Q0FBMEQ7QUE2RDFELE1BQWEsT0FBUSxTQUFRLDRCQUFrQztJQUM3QyxNQUFNLENBQXlCO0lBQy9CLGFBQWEsQ0FBeUI7SUFDdEMsVUFBVSxDQUF3QjtJQUNsQyxVQUFVLENBQXlCO0lBQ25DLFVBQVUsQ0FBeUI7SUFDbkMsUUFBUSxDQUF5QjtJQUNqQyxJQUFJLENBQXdCO0lBQzVCLE9BQU8sQ0FBd0M7SUFFL0QsWUFBWSxJQUFZLEVBQUUsSUFBaUIsRUFBRSxJQUFzQztRQUNqRixLQUFLLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDakQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsTUFBTSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQ3JGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEQsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekIsSUFBSSxNQUFNO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0UsSUFBSSxhQUFhO1lBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLEVBQUUsRUFBRSxhQUFhLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkcsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0UsSUFBSSxVQUFVO1lBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkYsSUFBSSxVQUFVO1lBQUUsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLEVBQUUsRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDL0YsSUFBSSxRQUFRO1lBQUUsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXJELElBQUksQ0FBQyxPQUFPLEdBQUcsa0JBQVcsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1RyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFDZixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDdEIsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyRCxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3JDLE1BQU0sRUFBRSxhQUFhLEdBQUcsRUFBRSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBRXZELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBQSxzQ0FBc0IsRUFBQyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDL0YsQ0FBQztRQUVELE9BQU8sSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQ3JDLEdBQUcsSUFBSSxDQUFDLElBQUksTUFBTSxFQUNsQjtZQUNFLEdBQUcsT0FBTztZQUNWLEdBQUcsS0FBSztZQUNSLGFBQWE7U0FDZCxFQUNELEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxHQUFHLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDekQsTUFBTSxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFFbEQsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLFVBQVU7Z0JBQ2hCLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQjthQUNsRCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLHVCQUFVLENBQ25CLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxFQUNqQjtZQUNFLE9BQU87WUFDUCxHQUFHLFVBQVU7WUFDYixNQUFNO1NBQ1AsRUFDRCxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ2xELENBQUM7SUFDSixDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLE1BQU0sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM3RCxJQUFJLENBQUMsVUFBVTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxpQkFBaUI7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFFcEcsT0FBTyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQzNCLEdBQUcsSUFBSSxDQUFDLElBQUksTUFBTSxFQUNsQjtZQUNFLEdBQUcsT0FBTztZQUNWLEdBQUcsVUFBVTtZQUNiLEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQzdCLGlCQUFpQjtTQUNsQixFQUNELEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDbEQsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUF1QztRQUM5RCxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUVsQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLHVCQUFVLENBQ25CLEdBQUcsSUFBSSxDQUFDLElBQUksTUFBTSxFQUNsQjtZQUNFLEdBQUcsVUFBVTtZQUNiLE9BQU87WUFDUCxRQUFRLEVBQUUsU0FBUyxDQUFDLEVBQUU7U0FDdkIsRUFDRCxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUN2QyxDQUFDO0lBQ0osQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUF1QztRQUM1RCxNQUFNLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFFaEMsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sb0JBQW9CLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRTFGLE9BQU8sSUFBSSxtQkFBUSxDQUNqQixHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssRUFDakI7WUFDRSxHQUFHLFFBQVE7WUFDWCxPQUFPO1lBQ1AseUJBQXlCLEVBQ3ZCLG9CQUFvQixJQUFJLFFBQVEsQ0FBQyx5QkFBeUI7Z0JBQ3hELENBQUMsQ0FBQztvQkFDRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxnQkFBZ0I7b0JBQ2xDLGVBQWUsRUFBRSxRQUFRLENBQUMseUJBQXlCO29CQUNuRCxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsb0JBQW9CLENBQUMsRUFBRSxFQUFFO2lCQUN4QztnQkFDSCxDQUFDLENBQUMsU0FBUztZQUVmLGdCQUFnQixFQUFFLGlCQUFpQjtnQkFDakMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUM3QyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDckIsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsWUFBWSxZQUFZO29CQUNoRCwrREFBK0Q7b0JBQy9ELGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDM0Msb0RBQW9EO29CQUNwRCxNQUFNLEVBQUUsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO2lCQUM1RCxDQUFDLENBQUMsQ0FDSjtnQkFDSCxDQUFDLENBQUM7b0JBQ0U7d0JBQ0UsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksWUFBWTt3QkFDOUIsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLGNBQWMsQ0FBQyxFQUFFLEVBQUU7cUJBQ2xDO2lCQUNGO1NBQ04sRUFDRCxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FDNUcsQ0FBQztJQUNKLENBQUM7SUFFTyxZQUFZLENBQUMsT0FBdUM7UUFDMUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDOUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBRTNFLE9BQU8sSUFBSSxlQUFNLENBQ2YsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVLEVBQ3RCO1lBQ0UsR0FBRyxNQUFNO1lBQ1QsT0FBTztZQUNQLFFBQVEsRUFBRSxZQUFZLENBQUMsRUFBRTtZQUN6QixPQUFPLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUU7U0FDL0IsRUFDRCxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFVBQVUsQ0FBQyxFQUNqQixVQUFVLEVBQ1YsVUFBVSxFQUNWLGFBQWEsR0FLZDtRQUNDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBb0MsRUFBRSxDQUFDO1FBRXRELElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixxR0FBcUc7WUFDckcsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7b0JBQ3BCLENBQUMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUVELE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ1gsVUFBVSxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0I7Z0JBQ3JELGFBQWEsRUFBRSxRQUFRLENBQUMsWUFBWTtnQkFDcEMsb0JBQW9CLEVBQUUsSUFBSTtnQkFDMUIsaUJBQWlCLEVBQUUsS0FBSztnQkFDeEIsaUJBQWlCLEVBQUUsS0FBSzthQUN6QixDQUFDLENBQUM7WUFFSCxJQUFJLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUNwQyxPQUFPLENBQUMsSUFBSSxDQUFDO29CQUNYLFVBQVUsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCO29CQUMvRCxhQUFhLEVBQUUsUUFBUSxDQUFDLHNCQUFzQjtvQkFDOUMsb0JBQW9CLEVBQUUsSUFBSTtvQkFDMUIsaUJBQWlCLEVBQUUsSUFBSTtvQkFDdkIsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQjtnQkFDeEQsYUFBYSxFQUFFLE1BQU0sQ0FBQyxZQUFZO2dCQUNsQyxvQkFBb0IsRUFBRSxLQUFLO2dCQUMzQixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixpQkFBaUIsRUFBRSxJQUFJO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxVQUFVLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQjtnQkFDdEQsYUFBYSxFQUFFLFVBQVUsQ0FBQyxZQUFZO2dCQUN0QyxvQkFBb0IsRUFBRSxJQUFJO2dCQUMxQixpQkFBaUIsRUFBRSxJQUFJO2dCQUN2QixpQkFBaUIsRUFBRSxJQUFJO2FBQ3hCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFVBQVU7WUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLElBQUksVUFBVTtZQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDM0MsSUFBSSxhQUFhO1lBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUVqRCxNQUFNLEVBQUUsR0FBRyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQ25DLEdBQUcsSUFBSSxDQUFDLElBQUksT0FBTyxFQUNuQjtZQUNFLEdBQUcsT0FBTztZQUNWLEdBQUcsSUFBSTtZQUNQLFlBQVksRUFBRTtnQkFDWixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYyxDQUFDO2FBQzlFO1lBRUQsT0FBTyxFQUFFLEVBQUU7WUFDWCxzQkFBc0IsRUFBRSxFQUFFO1lBRTFCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIsVUFBVSxFQUFFO2dCQUNWLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFdBQVcsRUFBRSxPQUFPLENBQUMsbUNBQW1DLENBQUMsZ0JBQWdCO2FBQzFFO1NBQ0YsRUFDRCxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsQ0FBQyx3QkFBd0IsRUFBRSxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQ2xGLENBQUM7UUFFRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQzlCLE9BQU87WUFDUCxJQUFJLEVBQUUsRUFBRTtZQUNSLFVBQVU7WUFDVixVQUFVO1lBQ1YsYUFBYTtTQUNkLENBQUMsQ0FBQztRQUVILE9BQU8sRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sYUFBYSxDQUFDLEVBQ3BCLE9BQU8sRUFDUCxJQUFJLEVBQ0osVUFBVSxFQUNWLFVBQVUsRUFDVixhQUFhLEdBT2Q7UUFDQyxNQUFNLEVBQ0osT0FBTyxFQUNQLElBQUksRUFBRSxFQUFFLHFCQUFxQixFQUFFLEdBQ2hDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNkLE1BQU0sRUFBRSxHQUFtQyxFQUFFLENBQUM7UUFFOUMsT0FBTzthQUNKLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN4RCxHQUFHLENBQ0YsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQ3BDLEdBQUcsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQzlCO1lBQ0UsR0FBRyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUk7WUFFN0IscUZBQXFGO1lBQ3JGLHFCQUFxQixFQUFFLHFCQUFxQixJQUFJLEtBQUs7WUFDckQsVUFBVSxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUM1RixvQkFBb0IsRUFBRSxDQUFDLENBQUMsb0JBQW9CO2dCQUMxQyxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsYUFBYTtvQkFDZixDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRTtvQkFDMUIsQ0FBQyxDQUFDLFNBQVM7WUFDYixVQUFVLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQzdGLEVBQ0QsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQzdELENBQUMsQ0FDTCxDQUFDO1FBRUosT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLFlBQVk7SUFDWixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCx3QkFBd0I7SUFDeEIscUNBQXFDO0lBQ3JDLHlCQUF5QjtJQUN6QixPQUFPO0lBQ1AsbUNBQW1DO0lBQ25DLHFHQUFxRztJQUNyRyxNQUFNO0lBQ04sSUFBSTtJQUVJLGFBQWEsQ0FBQyxJQUE0QjtRQUNoRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRW5DLE9BQU8sSUFBSSwrQkFBYyxDQUN2QixHQUFHLElBQUksQ0FBQyxJQUFJLFVBQVUsRUFDdEI7WUFDRSxHQUFHLFdBQVc7WUFDZCxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNuRCxVQUFVLEVBQUUsV0FBVyxDQUFDLElBQUk7U0FDN0IsRUFDRCxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUNsQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBaFdELDBCQWdXQyJ9
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as nw from '@pulumi/azure-native/network';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { BaseComponent } from '../base/BaseComponent';
|
|
4
|
+
import * as types from '../types';
|
|
5
|
+
export interface VpnGatewayArgs extends types.WithResourceGroupInputs, Omit<nw.VirtualNetworkGatewayArgs, 'id' | 'location' | 'ipConfigurations' | 'resourceGroupName' | 'sku' | 'virtualNetworkGatewayName'> {
|
|
6
|
+
sku: nw.VirtualNetworkGatewaySkuName;
|
|
7
|
+
publicIPAddress: types.SubResourceInputs;
|
|
8
|
+
subnetId: pulumi.Input<string>;
|
|
9
|
+
}
|
|
10
|
+
export declare class VpnGateway extends BaseComponent<VpnGatewayArgs> {
|
|
11
|
+
readonly id: pulumi.Output<string>;
|
|
12
|
+
readonly resourceName: pulumi.Output<string>;
|
|
13
|
+
constructor(name: string, args: VpnGatewayArgs, opts?: pulumi.ComponentResourceOptions);
|
|
14
|
+
getOutputs(): {
|
|
15
|
+
id: pulumi.Output<string>;
|
|
16
|
+
resourceName: pulumi.Output<string>;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.VpnGateway = void 0;
|
|
37
|
+
const nw = __importStar(require("@pulumi/azure-native/network"));
|
|
38
|
+
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
|
+
const BaseComponent_1 = require("../base/BaseComponent");
|
|
40
|
+
const helpers_1 = require("../base/helpers");
|
|
41
|
+
const helpers_2 = require("../helpers");
|
|
42
|
+
class VpnGateway extends BaseComponent_1.BaseComponent {
|
|
43
|
+
id;
|
|
44
|
+
resourceName;
|
|
45
|
+
constructor(name, args, opts) {
|
|
46
|
+
super((0, helpers_1.getComponentResourceType)('VpnGateway'), name, args, opts);
|
|
47
|
+
const { rsGroup, sku, publicIPAddress, subnetId, ...props } = args;
|
|
48
|
+
const vpn = new nw.VirtualNetworkGateway(name, {
|
|
49
|
+
...rsGroup,
|
|
50
|
+
...props,
|
|
51
|
+
sku: { name: sku, tier: sku },
|
|
52
|
+
gatewayType: props.gatewayType ?? 'Vpn',
|
|
53
|
+
vpnType: props.vpnType ?? 'RouteBased',
|
|
54
|
+
ipConfigurations: [
|
|
55
|
+
{
|
|
56
|
+
name: 'vnetGatewayConfig',
|
|
57
|
+
publicIPAddress: sku !== 'Basic'
|
|
58
|
+
? {
|
|
59
|
+
id: publicIPAddress.id,
|
|
60
|
+
}
|
|
61
|
+
: undefined,
|
|
62
|
+
subnet: {
|
|
63
|
+
id: subnetId,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
],
|
|
67
|
+
vpnClientConfiguration: props.vpnClientConfiguration ?? {
|
|
68
|
+
vpnClientProtocols: ['OpenVPN'],
|
|
69
|
+
vpnClientAddressPool: {
|
|
70
|
+
addressPrefixes: ['172.16.100.0/24'],
|
|
71
|
+
},
|
|
72
|
+
vpnAuthenticationTypes: [nw.VpnAuthenticationType.AAD],
|
|
73
|
+
aadTenant: pulumi.interpolate `https://login.microsoftonline.com/${helpers_2.azureEnv.tenantId}`,
|
|
74
|
+
aadAudience: '41b23e61-6c1e-4545-b367-cd054e0ed4b4',
|
|
75
|
+
aadIssuer: pulumi.interpolate `https://sts.windows.net/${helpers_2.azureEnv.tenantId}/`,
|
|
76
|
+
},
|
|
77
|
+
}, { ...opts, parent: this });
|
|
78
|
+
this.id = vpn.id;
|
|
79
|
+
this.resourceName = vpn.name;
|
|
80
|
+
this.registerOutputs(this.getOutputs());
|
|
81
|
+
}
|
|
82
|
+
getOutputs() {
|
|
83
|
+
return {
|
|
84
|
+
id: this.id,
|
|
85
|
+
resourceName: this.resourceName,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.VpnGateway = VpnGateway;
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnBuR2F0ZXdheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92bmV0L1ZwbkdhdGV3YXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsaUVBQW1EO0FBQ25ELHVEQUF5QztBQUN6Qyx5REFBc0Q7QUFDdEQsNkNBQTJEO0FBQzNELHdDQUFzQztBQWN0QyxNQUFhLFVBQVcsU0FBUSw2QkFBNkI7SUFDM0MsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBRXBELFlBQVksSUFBWSxFQUFFLElBQW9CLEVBQUUsSUFBc0M7UUFDcEYsS0FBSyxDQUFDLElBQUEsa0NBQXdCLEVBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVoRSxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLEdBQUcsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBRW5FLE1BQU0sR0FBRyxHQUFHLElBQUksRUFBRSxDQUFDLHFCQUFxQixDQUN0QyxJQUFJLEVBQ0o7WUFDRSxHQUFHLE9BQU87WUFDVixHQUFHLEtBQUs7WUFDUixHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUU7WUFFN0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSztZQUN2QyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSSxZQUFZO1lBRXRDLGdCQUFnQixFQUFFO2dCQUNoQjtvQkFDRSxJQUFJLEVBQUUsbUJBQW1CO29CQUN6QixlQUFlLEVBQ2IsR0FBRyxLQUFLLE9BQU87d0JBQ2IsQ0FBQyxDQUFDOzRCQUNFLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRTt5QkFDdkI7d0JBQ0gsQ0FBQyxDQUFDLFNBQVM7b0JBQ2YsTUFBTSxFQUFFO3dCQUNOLEVBQUUsRUFBRSxRQUFRO3FCQUNiO2lCQUNGO2FBQ0Y7WUFFRCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCLElBQUk7Z0JBQ3RELGtCQUFrQixFQUFFLENBQUMsU0FBUyxDQUFDO2dCQUMvQixvQkFBb0IsRUFBRTtvQkFDcEIsZUFBZSxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQ3JDO2dCQUVELHNCQUFzQixFQUFFLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQztnQkFDdEQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUEscUNBQXFDLGtCQUFRLENBQUMsUUFBUSxFQUFFO2dCQUNyRixXQUFXLEVBQUUsc0NBQXNDO2dCQUNuRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQSwyQkFBMkIsa0JBQVEsQ0FBQyxRQUFRLEdBQUc7YUFDN0U7U0FDRixFQUNELEVBQUUsR0FBRyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUMxQixDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztRQUU3QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBN0RELGdDQTZEQyJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RouteArgs } from './RouteTable';
|
|
2
|
+
export declare function getVnetIdFromSubnetId(subnetId: string): string;
|
|
3
|
+
export declare function getSubnetNameFromId(subnetId: string): string;
|
|
4
|
+
export declare function getDnsRecordName(recordName: string): string;
|
|
5
|
+
export declare enum AzureSubnetNames {
|
|
6
|
+
AppGatewaySubnetName = "app-gateway",
|
|
7
|
+
GatewaySubnetName = "GatewaySubnet",
|
|
8
|
+
AzFirewallSubnet = "AzureFirewallSubnet",
|
|
9
|
+
AzFirewallManagementSubnet = "AzureFirewallManagementSubnet",
|
|
10
|
+
AzBastionSubnetName = "AzureBastionSubnet"
|
|
11
|
+
}
|
|
12
|
+
export declare const defaultServicesEndpoints: string[];
|
|
13
|
+
export declare const defaultRouteRules: {
|
|
14
|
+
defaultInternetRoute: RouteArgs;
|
|
15
|
+
defaultGatewayRoute: RouteArgs;
|
|
16
|
+
};
|
package/vnet/helpers.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultRouteRules = exports.defaultServicesEndpoints = exports.AzureSubnetNames = void 0;
|
|
4
|
+
exports.getVnetIdFromSubnetId = getVnetIdFromSubnetId;
|
|
5
|
+
exports.getSubnetNameFromId = getSubnetNameFromId;
|
|
6
|
+
exports.getDnsRecordName = getDnsRecordName;
|
|
7
|
+
function getVnetIdFromSubnetId(subnetId) {
|
|
8
|
+
//The sample SubnetId is /subscriptions/63a31b41-eb5d-4160-9fc9-d30fc00286c9/resourceGroups/sg-dev-aks-vnet/providers/Microsoft.Network/virtualNetworks/sg-vnet-trans/subnets/aks-main-nodes
|
|
9
|
+
return subnetId.split('/subnets')[0];
|
|
10
|
+
}
|
|
11
|
+
function getSubnetNameFromId(subnetId) {
|
|
12
|
+
//The sample SubnetId is /subscriptions/63a31b41-eb5d-4160-9fc9-d30fc00286c9/resourceGroups/sg-dev-aks-vnet/providers/Microsoft.Network/virtualNetworks/sg-vnet-trans/subnets/aks-main-nodes
|
|
13
|
+
return subnetId.split('/subnets')[1];
|
|
14
|
+
}
|
|
15
|
+
function getDnsRecordName(recordName) {
|
|
16
|
+
return recordName === '*' ? `all-aRecord` : recordName === '@' ? `root-aRecord` : `${recordName}-aRecord`;
|
|
17
|
+
}
|
|
18
|
+
var AzureSubnetNames;
|
|
19
|
+
(function (AzureSubnetNames) {
|
|
20
|
+
AzureSubnetNames["AppGatewaySubnetName"] = "app-gateway";
|
|
21
|
+
AzureSubnetNames["GatewaySubnetName"] = "GatewaySubnet";
|
|
22
|
+
AzureSubnetNames["AzFirewallSubnet"] = "AzureFirewallSubnet";
|
|
23
|
+
AzureSubnetNames["AzFirewallManagementSubnet"] = "AzureFirewallManagementSubnet";
|
|
24
|
+
AzureSubnetNames["AzBastionSubnetName"] = "AzureBastionSubnet";
|
|
25
|
+
})(AzureSubnetNames || (exports.AzureSubnetNames = AzureSubnetNames = {}));
|
|
26
|
+
exports.defaultServicesEndpoints = [
|
|
27
|
+
'Microsoft.AzureActiveDirectory',
|
|
28
|
+
'Microsoft.AzureCosmosDB',
|
|
29
|
+
'Microsoft.ContainerRegistry',
|
|
30
|
+
'Microsoft.EventHub',
|
|
31
|
+
'Microsoft.KeyVault',
|
|
32
|
+
'Microsoft.ServiceBus',
|
|
33
|
+
'Microsoft.Sql',
|
|
34
|
+
'Microsoft.Storage',
|
|
35
|
+
'Microsoft.Web',
|
|
36
|
+
];
|
|
37
|
+
exports.defaultRouteRules = {
|
|
38
|
+
defaultInternetRoute: {
|
|
39
|
+
addressPrefix: '0.0.0.0/0',
|
|
40
|
+
nextHopType: 'Internet',
|
|
41
|
+
},
|
|
42
|
+
defaultGatewayRoute: {
|
|
43
|
+
addressPrefix: '0.0.0.0/0',
|
|
44
|
+
nextHopType: 'VirtualNetworkGateway',
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92bmV0L2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsc0RBR0M7QUFFRCxrREFHQztBQUVELDRDQUVDO0FBWkQsU0FBZ0IscUJBQXFCLENBQUMsUUFBZ0I7SUFDcEQsNExBQTRMO0lBQzVMLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBZ0IsbUJBQW1CLENBQUMsUUFBZ0I7SUFDbEQsNExBQTRMO0lBQzVMLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsVUFBa0I7SUFDakQsT0FBTyxVQUFVLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLFVBQVUsQ0FBQztBQUM1RyxDQUFDO0FBRUQsSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQzFCLHdEQUFvQyxDQUFBO0lBQ3BDLHVEQUFtQyxDQUFBO0lBQ25DLDREQUF3QyxDQUFBO0lBQ3hDLGdGQUE0RCxDQUFBO0lBQzVELDhEQUEwQyxDQUFBO0FBQzVDLENBQUMsRUFOVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQU0zQjtBQUVZLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsZ0NBQWdDO0lBQ2hDLHlCQUF5QjtJQUN6Qiw2QkFBNkI7SUFDN0Isb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixlQUFlO0NBQ2hCLENBQUM7QUFFVyxRQUFBLGlCQUFpQixHQUFHO0lBQy9CLG9CQUFvQixFQUFFO1FBQ3BCLGFBQWEsRUFBRSxXQUFXO1FBQzFCLFdBQVcsRUFBRSxVQUFVO0tBQ1g7SUFDZCxtQkFBbUIsRUFBRTtRQUNuQixhQUFhLEVBQUUsV0FBVztRQUMxQixXQUFXLEVBQUUsdUJBQXVCO0tBQ3hCO0NBQ2YsQ0FBQyJ9
|
package/vnet/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './AzCdn';
|
|
2
|
+
export * from './Basion';
|
|
3
|
+
export * from './DnsZone';
|
|
4
|
+
export * from './Firewall';
|
|
5
|
+
export * as vnetHelpers from './helpers';
|
|
6
|
+
export * from './IpAddresses';
|
|
7
|
+
export * from './NetworkPeering';
|
|
8
|
+
export * from './PrivateDnsZone';
|
|
9
|
+
export * from './PrivateEndpoint';
|
|
10
|
+
export * from './RouteTable';
|
|
11
|
+
export * from './VirtualNetwork';
|
|
12
|
+
export * from './VpnGateway';
|
|
13
|
+
export * from './securityRules';
|
package/vnet/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.vnetHelpers = void 0;
|
|
40
|
+
__exportStar(require("./AzCdn"), exports);
|
|
41
|
+
__exportStar(require("./Basion"), exports);
|
|
42
|
+
__exportStar(require("./DnsZone"), exports);
|
|
43
|
+
__exportStar(require("./Firewall"), exports);
|
|
44
|
+
exports.vnetHelpers = __importStar(require("./helpers"));
|
|
45
|
+
__exportStar(require("./IpAddresses"), exports);
|
|
46
|
+
__exportStar(require("./NetworkPeering"), exports);
|
|
47
|
+
__exportStar(require("./PrivateDnsZone"), exports);
|
|
48
|
+
__exportStar(require("./PrivateEndpoint"), exports);
|
|
49
|
+
__exportStar(require("./RouteTable"), exports);
|
|
50
|
+
__exportStar(require("./VirtualNetwork"), exports);
|
|
51
|
+
__exportStar(require("./VpnGateway"), exports);
|
|
52
|
+
__exportStar(require("./securityRules"), exports);
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdm5ldC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBd0I7QUFDeEIsMkNBQXlCO0FBQ3pCLDRDQUEwQjtBQUMxQiw2Q0FBMkI7QUFDM0IseURBQXlDO0FBQ3pDLGdEQUE4QjtBQUM5QixtREFBaUM7QUFDakMsbURBQWlDO0FBQ2pDLG9EQUFrQztBQUNsQywrQ0FBNkI7QUFDN0IsbURBQWlDO0FBQ2pDLCtDQUE2QjtBQUM3QixrREFBZ0MifQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as inputs from '@pulumi/azure-native/types/input';
|
|
2
|
+
type RuleItemArgs = Partial<Pick<inputs.network.SecurityRuleArgs, 'description' | 'protocol' | 'sourceAddressPrefix' | 'destinationAddressPrefix' | 'destinationAddressPrefixes' | 'destinationPortRange' | 'destinationPortRanges' | 'sourceAddressPrefixes' | 'sourcePortRange' | 'sourcePortRanges'>>;
|
|
3
|
+
export declare class SecurityRuleBuilder {
|
|
4
|
+
private _rules;
|
|
5
|
+
private addRule;
|
|
6
|
+
allowInbound(name: string, props: RuleItemArgs): SecurityRuleBuilder;
|
|
7
|
+
denyInbound(name: string, props: RuleItemArgs): SecurityRuleBuilder;
|
|
8
|
+
allowOutbound(name: string, props: RuleItemArgs): SecurityRuleBuilder;
|
|
9
|
+
denyOutbound(name: string, props: RuleItemArgs): SecurityRuleBuilder;
|
|
10
|
+
build(startPriority?: number): inputs.network.SecurityRuleArgs[];
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SecurityRuleBuilder = void 0;
|
|
4
|
+
class SecurityRuleBuilder {
|
|
5
|
+
_rules = [];
|
|
6
|
+
addRule(name, props) {
|
|
7
|
+
this._rules.push({
|
|
8
|
+
name,
|
|
9
|
+
protocol: '*',
|
|
10
|
+
sourceAddressPrefix: '*',
|
|
11
|
+
sourcePortRange: '*',
|
|
12
|
+
destinationAddressPrefix: '*',
|
|
13
|
+
destinationPortRange: '*',
|
|
14
|
+
...props,
|
|
15
|
+
});
|
|
16
|
+
return this;
|
|
17
|
+
}
|
|
18
|
+
allowInbound(name, props) {
|
|
19
|
+
return this.addRule(name, {
|
|
20
|
+
access: 'Allow',
|
|
21
|
+
direction: 'Inbound',
|
|
22
|
+
...props,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
denyInbound(name, props) {
|
|
26
|
+
return this.addRule(name, {
|
|
27
|
+
access: 'Deny',
|
|
28
|
+
direction: 'Inbound',
|
|
29
|
+
...props,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
allowOutbound(name, props) {
|
|
33
|
+
return this.addRule(name, {
|
|
34
|
+
access: 'Allow',
|
|
35
|
+
direction: 'Outbound',
|
|
36
|
+
...props,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
denyOutbound(name, props) {
|
|
40
|
+
return this.addRule(name, {
|
|
41
|
+
access: 'Deny',
|
|
42
|
+
direction: 'Outbound',
|
|
43
|
+
...props,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
build(startPriority = 300) {
|
|
47
|
+
const rules = this._rules.map((rule, index) => {
|
|
48
|
+
rule.priority = startPriority + index;
|
|
49
|
+
return rule;
|
|
50
|
+
});
|
|
51
|
+
return rules;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.SecurityRuleBuilder = SecurityRuleBuilder;
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VjdXJpdHlSdWxlQnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92bmV0L3NlY3VyaXR5UnVsZXMvU2VjdXJpdHlSdWxlQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFtQkEsTUFBYSxtQkFBbUI7SUFDdEIsTUFBTSxHQUFzQyxFQUFFLENBQUM7SUFFL0MsT0FBTyxDQUNiLElBQVksRUFDWixLQUFzRztRQUV0RyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNmLElBQUk7WUFDSixRQUFRLEVBQUUsR0FBRztZQUNiLG1CQUFtQixFQUFFLEdBQUc7WUFDeEIsZUFBZSxFQUFFLEdBQUc7WUFDcEIsd0JBQXdCLEVBQUUsR0FBRztZQUM3QixvQkFBb0IsRUFBRSxHQUFHO1lBQ3pCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBbUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUN4QixNQUFNLEVBQUUsT0FBTztZQUNmLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQW1CO1FBQ2xELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDeEIsTUFBTSxFQUFFLE1BQU07WUFDZCxTQUFTLEVBQUUsU0FBUztZQUNwQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVksRUFBRSxLQUFtQjtRQUNwRCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO1lBQ3hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsU0FBUyxFQUFFLFVBQVU7WUFDckIsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBbUI7UUFDbkQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRTtZQUN4QixNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxVQUFVO1lBQ3JCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQXdCLEdBQUc7UUFDL0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRjtBQTVERCxrREE0REMifQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
2
|
+
export declare function getBasionSecurityRules({ bastionAddressPrefix, startPriority, }: {
|
|
3
|
+
bastionAddressPrefix: pulumi.Input<string>;
|
|
4
|
+
startPriority?: number;
|
|
5
|
+
}): import("@pulumi/azure-native/types/input").network.SecurityRuleArgs[];
|
|
6
|
+
export declare function getAppGatewaySecurityRules({ apiGatewayAddressPrefix, startPriority, }: {
|
|
7
|
+
apiGatewayAddressPrefix: pulumi.Input<string>;
|
|
8
|
+
startPriority?: number;
|
|
9
|
+
}): import("@pulumi/azure-native/types/input").network.SecurityRuleArgs[];
|