@drunk-pulumi/azure-components 1.0.2 → 1.0.4
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/README.md +29 -2
- package/ResourceBuilder.d.ts +76 -24
- package/ResourceBuilder.js +144 -44
- package/aks/AzKubernetes.d.ts +30 -8
- package/aks/AzKubernetes.js +107 -44
- package/aks/ContainerRegistry.d.ts +4 -3
- package/aks/ContainerRegistry.js +22 -19
- package/apim/Apim.d.ts +51 -0
- package/apim/Apim.js +248 -0
- package/apim/ApimApi.d.ts +34 -0
- package/apim/ApimApi.js +193 -0
- package/apim/ApimApiSet.d.ts +27 -0
- package/apim/ApimApiSet.js +88 -0
- package/apim/ApimPolicyBuilder.d.ts +93 -0
- package/apim/ApimPolicyBuilder.js +294 -0
- package/apim/ApimProduct.d.ts +27 -0
- package/apim/ApimProduct.js +118 -0
- package/apim/index.d.ts +2 -0
- package/apim/index.js +19 -0
- package/apim/openAPI3Type.d.ts +85 -0
- package/apim/openAPI3Type.js +3 -0
- package/apim/openApiHelper.d.ts +1 -0
- package/apim/openApiHelper.js +36 -0
- package/app/SignalR.d.ts +3 -3
- package/app/SignalR.js +35 -20
- package/azAd/AppRegistration.d.ts +13 -7
- package/azAd/AppRegistration.js +48 -40
- package/azAd/AzRole.js +2 -2
- package/azAd/GroupRole.d.ts +7 -11
- package/azAd/GroupRole.js +7 -6
- package/azAd/RoleAssignment.d.ts +1 -1
- package/azAd/RoleAssignment.js +5 -5
- package/azAd/UserAssignedIdentity.d.ts +3 -0
- package/azAd/UserAssignedIdentity.js +23 -7
- package/azAd/helpers/index.d.ts +0 -2
- package/azAd/helpers/index.js +26 -21
- package/azAd/helpers/rolesBuiltIn.d.ts +6 -57
- package/azAd/helpers/rolesBuiltIn.js +25868 -25353
- package/azAd/helpers/rsRoleDefinition.d.ts +12 -6
- package/azAd/helpers/rsRoleDefinition.js +43 -31
- package/base/BaseComponent.d.ts +1 -15
- package/base/BaseComponent.js +3 -22
- package/base/BaseResourceComponent.d.ts +24 -17
- package/base/BaseResourceComponent.js +61 -45
- package/base/helpers.d.ts +0 -6
- package/base/helpers.js +1 -18
- package/common/RandomPassword.js +4 -4
- package/common/RandomString.d.ts +1 -1
- package/common/RandomString.js +3 -3
- package/common/RsGroup.js +2 -2
- package/database/AzSql.d.ts +11 -10
- package/database/AzSql.js +38 -24
- package/database/MySql.d.ts +1 -1
- package/database/MySql.js +45 -28
- package/database/Postgres.d.ts +2 -1
- package/database/Postgres.js +29 -17
- package/database/Redis.d.ts +25 -4
- package/database/Redis.js +88 -25
- package/helpers/autoTags.js +2 -1
- package/helpers/certHelpers.d.ts +20 -0
- package/helpers/certHelpers.js +85 -0
- package/helpers/rsHelpers.d.ts +19 -1
- package/helpers/rsHelpers.js +27 -4
- package/helpers/stackEnv.d.ts +1 -1
- package/helpers/stackEnv.js +1 -1
- package/index.d.ts +1 -0
- package/index.js +2 -1
- package/package.json +10 -7
- package/services/Automation.d.ts +3 -1
- package/services/Automation.js +8 -8
- package/services/ServiceBus.d.ts +3 -2
- package/services/ServiceBus.js +17 -19
- package/types.d.ts +44 -15
- package/vault/EncryptionKey.d.ts +1 -1
- package/vault/EncryptionKey.js +4 -4
- package/vault/KeyVault.d.ts +7 -2
- package/vault/KeyVault.js +16 -5
- package/vault/VaultSecret.d.ts +1 -1
- package/vault/VaultSecret.js +9 -9
- package/vault/VaultSecrets.d.ts +2 -4
- package/vault/VaultSecrets.js +4 -6
- package/vault/helpers.d.ts +17 -0
- package/vault/helpers.js +50 -2
- package/vm/DiskEncryptionSet.js +2 -2
- package/vm/VirtualMachine.d.ts +2 -1
- package/vm/VirtualMachine.js +37 -25
- package/vnet/Basion.d.ts +4 -3
- package/vnet/Basion.js +17 -4
- package/vnet/DnsZone.d.ts +1 -1
- package/vnet/DnsZone.js +2 -2
- package/vnet/IpAddresses.d.ts +6 -2
- package/vnet/IpAddresses.js +2 -2
- package/vnet/NetworkPeering.d.ts +1 -1
- package/vnet/NetworkPeering.js +1 -1
- package/vnet/PrivateDnsZone.d.ts +1 -1
- package/vnet/PrivateDnsZone.js +4 -4
- package/vnet/PrivateEndpoint.d.ts +7 -10
- package/vnet/PrivateEndpoint.js +11 -10
- package/vnet/RouteTable.d.ts +1 -1
- package/vnet/RouteTable.js +2 -2
- package/vnet/VirtualNetwork.d.ts +30 -43
- package/vnet/VirtualNetwork.js +77 -43
- package/vnet/VpnGateway.js +2 -2
package/aks/AzKubernetes.js
CHANGED
|
@@ -38,29 +38,37 @@ const ccs = __importStar(require("@pulumi/azure-native/containerservice"));
|
|
|
38
38
|
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
39
39
|
const azAd_1 = require("../azAd");
|
|
40
40
|
const base_1 = require("../base");
|
|
41
|
-
const common_1 = require("../common");
|
|
42
41
|
const helpers_1 = require("../helpers");
|
|
43
|
-
const vault_1 = require("../vault");
|
|
44
42
|
const DiskEncryptionSet_1 = require("../vm/DiskEncryptionSet");
|
|
45
|
-
const
|
|
43
|
+
const common_1 = require("../common");
|
|
46
44
|
class AzKubernetes extends base_1.BaseResourceComponent {
|
|
47
45
|
id;
|
|
48
46
|
resourceName;
|
|
47
|
+
namespaces;
|
|
48
|
+
privateDnsZone;
|
|
49
49
|
constructor(name, args, opts) {
|
|
50
50
|
super('AzKubernetes', name, args, opts);
|
|
51
51
|
const app = this.createIdentity();
|
|
52
52
|
const cluster = this.createCluster(app);
|
|
53
|
+
this.createExtraAgentPoolProfiles(cluster);
|
|
53
54
|
this.createMaintenance(cluster);
|
|
54
55
|
this.assignPermission(cluster);
|
|
55
|
-
this.
|
|
56
|
+
const nss = this.createNameSpaces(cluster);
|
|
57
|
+
this.privateDnsZone = this.getPrivateDNSZone(cluster);
|
|
56
58
|
this.id = cluster.id;
|
|
57
59
|
this.resourceName = cluster.name;
|
|
60
|
+
this.namespaces = helpers_1.rsHelpers.dictReduce(nss, (n, ns) => ({
|
|
61
|
+
id: ns.id,
|
|
62
|
+
resourceName: ns.name.apply((n) => n),
|
|
63
|
+
}));
|
|
58
64
|
this.registerOutputs();
|
|
59
65
|
}
|
|
60
66
|
getOutputs() {
|
|
61
67
|
return {
|
|
62
68
|
id: this.id,
|
|
63
69
|
resourceName: this.resourceName,
|
|
70
|
+
namespaces: this.namespaces,
|
|
71
|
+
privateDnsZone: this.privateDnsZone,
|
|
64
72
|
};
|
|
65
73
|
}
|
|
66
74
|
createIdentity() {
|
|
@@ -88,27 +96,30 @@ class AzKubernetes extends base_1.BaseResourceComponent {
|
|
|
88
96
|
return { userName, sshPublicKey: ssh.publicKey };
|
|
89
97
|
}
|
|
90
98
|
createDiskEncryptionSet() {
|
|
91
|
-
const { rsGroup, enableEncryption, defaultUAssignedId, vaultInfo } = this.args;
|
|
99
|
+
const { rsGroup, enableEncryption, diskEncryptionSet, defaultUAssignedId, vaultInfo } = this.args;
|
|
92
100
|
if (!enableEncryption)
|
|
93
101
|
return undefined;
|
|
102
|
+
if (diskEncryptionSet)
|
|
103
|
+
return diskEncryptionSet;
|
|
94
104
|
return new DiskEncryptionSet_1.DiskEncryptionSet(`${this.name}-disk-encryption-set`, {
|
|
95
105
|
rsGroup,
|
|
96
106
|
vaultInfo,
|
|
97
107
|
defaultUAssignedId,
|
|
98
108
|
encryptionType: 'EncryptionAtRestWithPlatformAndCustomerKeys',
|
|
99
|
-
}, { dependsOn: this.opts?.dependsOn, parent: this });
|
|
109
|
+
}, { dependsOn: this.opts?.dependsOn, parent: this }).getOutputs();
|
|
100
110
|
}
|
|
101
111
|
createCluster(app) {
|
|
102
|
-
const { rsGroup, vaultInfo, groupRoles, defaultUAssignedId, enableEncryption, features, addonProfiles, network, logWorkspace, sku, ...props } = this.args;
|
|
103
|
-
const
|
|
112
|
+
const { rsGroup, vaultInfo, groupRoles, defaultUAssignedId, enableEncryption, nodeResourceGroup, features, addonProfiles, network, logWorkspace, sku, autoScalerProfile, extraAgentPoolProfiles, ...props } = this.args;
|
|
113
|
+
const nodeRg = nodeResourceGroup ?? pulumi.interpolate `${rsGroup.resourceGroupName}-nodes`;
|
|
104
114
|
const login = this.createUserNameAndSshKeys();
|
|
105
115
|
const diskEncryptionSet = this.createDiskEncryptionSet();
|
|
106
116
|
return new ccs.ManagedCluster(this.name, {
|
|
107
117
|
...props,
|
|
108
118
|
...rsGroup,
|
|
109
|
-
nodeResourceGroup,
|
|
119
|
+
nodeResourceGroup: nodeRg,
|
|
110
120
|
dnsPrefix: props.dnsPrefix ?? `${helpers_1.azureEnv.currentEnv}-${this.name}`,
|
|
111
121
|
enableRBAC: true,
|
|
122
|
+
disableLocalAccounts: true,
|
|
112
123
|
aadProfile: groupRoles
|
|
113
124
|
? {
|
|
114
125
|
enableAzureRBAC: true,
|
|
@@ -118,7 +129,7 @@ class AzKubernetes extends base_1.BaseResourceComponent {
|
|
|
118
129
|
}
|
|
119
130
|
: undefined,
|
|
120
131
|
apiServerAccessProfile: {
|
|
121
|
-
authorizedIPRanges: features?.enablePrivateCluster ? undefined : network?.authorizedIPRanges ?? [],
|
|
132
|
+
authorizedIPRanges: features?.enablePrivateCluster ? undefined : (network?.authorizedIPRanges ?? []),
|
|
122
133
|
disableRunCommand: true,
|
|
123
134
|
enablePrivateCluster: features?.enablePrivateCluster,
|
|
124
135
|
//TODO: to make the life simple we enable this to allows IP DNS query from public internet.
|
|
@@ -173,7 +184,7 @@ class AzKubernetes extends base_1.BaseResourceComponent {
|
|
|
173
184
|
verticalPodAutoscaler: {
|
|
174
185
|
enabled: features?.enableVerticalPodAutoscaler || false,
|
|
175
186
|
},
|
|
176
|
-
keda: { enabled:
|
|
187
|
+
keda: { enabled: true },
|
|
177
188
|
},
|
|
178
189
|
//azureMonitorProfile: { metrics: { enabled } },
|
|
179
190
|
//Refer here for details https://learn.microsoft.com/en-us/azure/aks/use-managed-identity
|
|
@@ -207,80 +218,132 @@ class AzKubernetes extends base_1.BaseResourceComponent {
|
|
|
207
218
|
type: defaultUAssignedId ? ccs.ResourceIdentityType.UserAssigned : ccs.ResourceIdentityType.SystemAssigned,
|
|
208
219
|
userAssignedIdentities: defaultUAssignedId ? [defaultUAssignedId.id] : undefined,
|
|
209
220
|
},
|
|
221
|
+
// identityProfile: defaultUAssignedId
|
|
222
|
+
// ? pulumi.output(defaultUAssignedId).apply((uID) => ({ [uID.id]: uID }))
|
|
223
|
+
// : undefined,
|
|
210
224
|
networkProfile: {
|
|
211
225
|
...network,
|
|
212
226
|
networkMode: ccs.NetworkMode.Transparent,
|
|
213
|
-
networkPolicy: ccs.NetworkPolicy.
|
|
227
|
+
networkPolicy: network?.networkPolicy ?? ccs.NetworkPolicy.Cilium,
|
|
214
228
|
networkPlugin: ccs.NetworkPlugin.Azure,
|
|
215
229
|
loadBalancerSku: 'Standard',
|
|
216
230
|
outboundType: network?.outboundType ?? ccs.OutboundType.UserDefinedRouting,
|
|
217
231
|
},
|
|
232
|
+
autoScalerProfile: autoScalerProfile ?? {
|
|
233
|
+
balanceSimilarNodeGroups: 'false',
|
|
234
|
+
expander: 'random',
|
|
235
|
+
maxEmptyBulkDelete: '10',
|
|
236
|
+
maxGracefulTerminationSec: '600',
|
|
237
|
+
maxNodeProvisionTime: '15m',
|
|
238
|
+
maxTotalUnreadyPercentage: '45',
|
|
239
|
+
newPodScaleUpDelay: '0s',
|
|
240
|
+
okTotalUnreadyCount: '3',
|
|
241
|
+
scaleDownDelayAfterAdd: '10m',
|
|
242
|
+
scaleDownDelayAfterDelete: '10s',
|
|
243
|
+
scaleDownDelayAfterFailure: '3m',
|
|
244
|
+
scaleDownUnneededTime: '10m',
|
|
245
|
+
scaleDownUnreadyTime: '20m',
|
|
246
|
+
scaleDownUtilizationThreshold: '0.5',
|
|
247
|
+
scanInterval: '10s',
|
|
248
|
+
skipNodesWithLocalStorage: 'false',
|
|
249
|
+
skipNodesWithSystemPods: 'true',
|
|
250
|
+
},
|
|
251
|
+
autoUpgradeProfile: {
|
|
252
|
+
nodeOSUpgradeChannel: ccs.NodeOSUpgradeChannel.NodeImage,
|
|
253
|
+
upgradeChannel: ccs.UpgradeChannel.Stable,
|
|
254
|
+
},
|
|
218
255
|
}, {
|
|
219
256
|
...this.opts,
|
|
220
257
|
dependsOn: app,
|
|
221
258
|
parent: this,
|
|
222
259
|
});
|
|
223
260
|
}
|
|
261
|
+
createExtraAgentPoolProfiles(aks) {
|
|
262
|
+
const { rsGroup, extraAgentPoolProfiles } = this.args;
|
|
263
|
+
if (!extraAgentPoolProfiles || extraAgentPoolProfiles.length === 0)
|
|
264
|
+
return;
|
|
265
|
+
return extraAgentPoolProfiles.map((profile) => new ccs.AgentPool(`${this.name}-${profile.name}`, {
|
|
266
|
+
...rsGroup,
|
|
267
|
+
...profile,
|
|
268
|
+
resourceName: aks.name,
|
|
269
|
+
agentPoolName: profile.name,
|
|
270
|
+
}, { dependsOn: aks, deletedWith: aks, parent: this }));
|
|
271
|
+
}
|
|
272
|
+
createNameSpaces(aks) {
|
|
273
|
+
const { rsGroup, namespaces } = this.args;
|
|
274
|
+
if (!namespaces)
|
|
275
|
+
return {};
|
|
276
|
+
return helpers_1.rsHelpers.dictReduce(namespaces, (n, props) => new ccs.Namespace(`${this.name}-ns-${n}`, {
|
|
277
|
+
...rsGroup,
|
|
278
|
+
resourceName: aks.name,
|
|
279
|
+
namespaceName: n,
|
|
280
|
+
properties: props,
|
|
281
|
+
}, { dependsOn: aks, parent: this, retainOnDelete: true }));
|
|
282
|
+
}
|
|
224
283
|
createMaintenance(aks) {
|
|
225
284
|
const { rsGroup, maintenance } = this.args;
|
|
226
|
-
if (!maintenance)
|
|
227
|
-
return undefined;
|
|
228
285
|
return new ccs.MaintenanceConfiguration(`${this.name}-MaintenanceConfiguration`, {
|
|
229
286
|
...rsGroup,
|
|
230
|
-
...maintenance,
|
|
231
287
|
configName: 'default',
|
|
232
288
|
resourceName: aks.name,
|
|
233
|
-
timeInWeek: maintenance
|
|
289
|
+
timeInWeek: maintenance?.timeInWeek ?? [
|
|
234
290
|
{
|
|
235
291
|
day: ccs.WeekDay.Sunday,
|
|
236
292
|
hourSlots: [0, 23],
|
|
237
293
|
},
|
|
238
294
|
],
|
|
239
|
-
|
|
295
|
+
notAllowedTime: maintenance?.notAllowedTime,
|
|
296
|
+
}, { dependsOn: aks, deletedWith: aks, deleteBeforeReplace: true, parent: this });
|
|
240
297
|
}
|
|
241
298
|
assignPermission(aks) {
|
|
242
299
|
const { rsGroup, attachToAcr } = this.args;
|
|
243
|
-
pulumi
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
300
|
+
pulumi
|
|
301
|
+
.all([aks.identity, aks.identityProfile, aks.addonProfiles, attachToAcr])
|
|
302
|
+
.apply(([identity, identityProfile, addon, acr]) => {
|
|
303
|
+
//User Assigned Identity
|
|
304
|
+
//console.log(Object.values(identityProfile!));
|
|
305
|
+
if (identityProfile?.kubeletidentity) {
|
|
306
|
+
this.addIdentityToRole('contributor', { principalId: identityProfile.kubeletidentity.objectId });
|
|
307
|
+
if (acr) {
|
|
247
308
|
new azAd_1.RoleAssignment(`${this.name}-aks-acr`, {
|
|
248
|
-
principalId: identityProfile.
|
|
309
|
+
principalId: identityProfile.kubeletidentity.objectId,
|
|
249
310
|
principalType: 'ServicePrincipal',
|
|
250
|
-
roleName: '
|
|
251
|
-
scope:
|
|
252
|
-
}, { dependsOn: aks, parent: this });
|
|
311
|
+
roleName: 'AcrPull',
|
|
312
|
+
scope: acr.id,
|
|
313
|
+
}, { dependsOn: aks, deletedWith: aks, parent: this });
|
|
253
314
|
}
|
|
254
315
|
}
|
|
255
|
-
|
|
316
|
+
//System Managed Identity
|
|
317
|
+
if (identity?.principalId) {
|
|
256
318
|
new azAd_1.RoleAssignment(`${this.name}-aks-identity`, {
|
|
257
319
|
principalId: identity.principalId,
|
|
258
320
|
principalType: 'ServicePrincipal',
|
|
259
321
|
roleName: 'Contributor',
|
|
260
322
|
scope: helpers_1.rsHelpers.getRsGroupIdFrom(rsGroup),
|
|
261
|
-
}, { dependsOn: aks, parent: this });
|
|
323
|
+
}, { dependsOn: aks, deletedWith: aks, parent: this });
|
|
324
|
+
}
|
|
325
|
+
//addon
|
|
326
|
+
if (addon?.azureKeyvaultSecretsProvider?.identity) {
|
|
327
|
+
this.addIdentityToRole('readOnly', {
|
|
328
|
+
principalId: addon.azureKeyvaultSecretsProvider.identity.objectId,
|
|
329
|
+
});
|
|
262
330
|
}
|
|
263
331
|
});
|
|
264
332
|
}
|
|
265
|
-
|
|
266
|
-
const {
|
|
267
|
-
if (!
|
|
333
|
+
getPrivateDNSZone(aks) {
|
|
334
|
+
const { features } = this.args;
|
|
335
|
+
if (!features.enablePrivateCluster)
|
|
268
336
|
return undefined;
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
disableLocalAccounts: disabled,
|
|
276
|
-
});
|
|
277
|
-
return new vault_1.VaultSecret(`${this.name}-credential`, {
|
|
278
|
-
vaultInfo,
|
|
279
|
-
value: credential,
|
|
280
|
-
contentType: `AzKubernetes ${this.name} aks config`,
|
|
281
|
-
}, { dependsOn: aks, parent: this, retainOnDelete: true });
|
|
337
|
+
const rsGroup = aks.nodeResourceGroup;
|
|
338
|
+
const zoneName = aks.privateFQDN.apply((fqdn) => {
|
|
339
|
+
if (!fqdn)
|
|
340
|
+
return fqdn;
|
|
341
|
+
const firstDot = fqdn.indexOf('.');
|
|
342
|
+
return firstDot >= 0 ? fqdn.substring(firstDot + 1) : fqdn;
|
|
282
343
|
});
|
|
344
|
+
const id = pulumi.interpolate `/subscriptions/${helpers_1.azureEnv.subscriptionId}/resourceGroups/${rsGroup}/providers/Microsoft.Network/privateDnsZones/${zoneName}`;
|
|
345
|
+
return { id, resourceName: zoneName };
|
|
283
346
|
}
|
|
284
347
|
}
|
|
285
348
|
exports.AzKubernetes = AzKubernetes;
|
|
286
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXpLdWJlcm5ldGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Frcy9Bekt1YmVybmV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQTZEO0FBRTdELHVEQUF5QztBQUN6QyxrQ0FBMEQ7QUFDMUQsa0NBQWdFO0FBQ2hFLHNDQUF5QztBQUN6Qyx3Q0FBaUQ7QUFFakQsb0NBQXVDO0FBQ3ZDLCtEQUE0RDtBQUM1RCxzREFBd0M7QUFxRHhDLE1BQWEsWUFBYSxTQUFRLDRCQUF1QztJQUN2RCxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBc0IsRUFBRSxJQUFzQztRQUN0RixLQUFLLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFeEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVqQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPO1lBQ0wsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1NBQ2hDLENBQUM7SUFDSixDQUFD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
|
|
349
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXpLdWJlcm5ldGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Frcy9Bekt1YmVybmV0ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQTZEO0FBRTdELHVEQUF5QztBQUd6QyxrQ0FBMEQ7QUFDMUQsa0NBQWdFO0FBQ2hFLHdDQUFpRDtBQUVqRCwrREFBNEQ7QUFDNUQsc0NBQXlDO0FBMER6QyxNQUFhLFlBQWEsU0FBUSw0QkFBdUM7SUFDdkQsRUFBRSxDQUF3QjtJQUMxQixZQUFZLENBQXdCO0lBQ3BDLFVBQVUsQ0FBd0M7SUFDbEQsY0FBYyxDQUFvQztJQUVsRSxZQUFZLElBQVksRUFBRSxJQUFzQixFQUFFLElBQXNDO1FBQ3RGLEtBQUssQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUV4QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsNEJBQTRCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztRQUVqQyxJQUFJLENB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
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as registry from '@pulumi/azure-native/containerregistry';
|
|
2
1
|
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
-
import
|
|
2
|
+
import * as registry from '@pulumi/azure-native/containerregistry';
|
|
4
3
|
import * as types from '../types';
|
|
5
|
-
|
|
4
|
+
import { BaseResourceComponent, CommonBaseArgs } from '../base';
|
|
5
|
+
export interface ContainerRegistryArgs extends CommonBaseArgs, types.WithEncryptionEnabler, types.WithUserAssignedIdentity, Partial<Pick<registry.RegistryArgs, 'dataEndpointEnabled' | 'zoneRedundancy'>> {
|
|
6
6
|
sku: registry.SkuName;
|
|
7
7
|
retentionDaysPolicy?: number;
|
|
8
8
|
network?: Omit<types.NetworkArgs, 'vnetRules'>;
|
|
@@ -15,5 +15,6 @@ export declare class ContainerRegistry extends BaseResourceComponent<ContainerRe
|
|
|
15
15
|
id: pulumi.Output<string>;
|
|
16
16
|
resourceName: pulumi.Output<string>;
|
|
17
17
|
};
|
|
18
|
+
private createAcr;
|
|
18
19
|
private createPrivateLink;
|
|
19
20
|
}
|
package/aks/ContainerRegistry.js
CHANGED
|
@@ -34,8 +34,8 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.ContainerRegistry = void 0;
|
|
37
|
-
const registry = __importStar(require("@pulumi/azure-native/containerregistry"));
|
|
38
37
|
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
38
|
+
const registry = __importStar(require("@pulumi/azure-native/containerregistry"));
|
|
39
39
|
const base_1 = require("../base");
|
|
40
40
|
const PrivateEndpoint_1 = require("../vnet/PrivateEndpoint");
|
|
41
41
|
class ContainerRegistry extends base_1.BaseResourceComponent {
|
|
@@ -43,24 +43,37 @@ class ContainerRegistry extends base_1.BaseResourceComponent {
|
|
|
43
43
|
resourceName;
|
|
44
44
|
constructor(name, args, opts) {
|
|
45
45
|
super('ContainerRegistry', name, args, opts);
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
const acr = this.createAcr();
|
|
47
|
+
this.createPrivateLink(acr);
|
|
48
|
+
this.id = acr.id;
|
|
49
|
+
this.resourceName = acr.name;
|
|
50
|
+
this.registerOutputs();
|
|
51
|
+
}
|
|
52
|
+
getOutputs() {
|
|
53
|
+
return {
|
|
54
|
+
id: this.id,
|
|
55
|
+
resourceName: this.resourceName,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
createAcr() {
|
|
59
|
+
const { rsGroup, enableEncryption, defaultUAssignedId, retentionDaysPolicy, sku, network, ...props } = this.args;
|
|
60
|
+
const encryptionKey = sku === 'Premium' && enableEncryption ? this.getEncryptionKey() : undefined;
|
|
61
|
+
const alphanumericString = (this.name.match(/[a-zA-Z0-9]+/g) || []).join('');
|
|
62
|
+
return new registry.Registry(alphanumericString, {
|
|
49
63
|
...props,
|
|
50
64
|
...rsGroup,
|
|
51
65
|
sku: { name: sku },
|
|
52
66
|
adminUserEnabled: false,
|
|
53
67
|
anonymousPullEnabled: false,
|
|
54
|
-
//This is for encryption
|
|
55
68
|
identity: {
|
|
56
69
|
type: defaultUAssignedId
|
|
57
70
|
? registry.ResourceIdentityType.SystemAssigned_UserAssigned
|
|
58
71
|
: registry.ResourceIdentityType.SystemAssigned,
|
|
59
72
|
userAssignedIdentities: defaultUAssignedId
|
|
60
|
-
? pulumi.output(defaultUAssignedId
|
|
73
|
+
? pulumi.output(defaultUAssignedId).apply((id) => ({ [id.id]: {} }))
|
|
61
74
|
: undefined,
|
|
62
75
|
},
|
|
63
|
-
encryption:
|
|
76
|
+
encryption: encryptionKey && defaultUAssignedId
|
|
64
77
|
? {
|
|
65
78
|
keyVaultProperties: {
|
|
66
79
|
identity: defaultUAssignedId.clientId,
|
|
@@ -96,17 +109,7 @@ class ContainerRegistry extends base_1.BaseResourceComponent {
|
|
|
96
109
|
: undefined,
|
|
97
110
|
}
|
|
98
111
|
: undefined,
|
|
99
|
-
}, { ...opts, parent: this });
|
|
100
|
-
this.createPrivateLink(acr);
|
|
101
|
-
this.id = acr.id;
|
|
102
|
-
this.resourceName = acr.name;
|
|
103
|
-
this.registerOutputs();
|
|
104
|
-
}
|
|
105
|
-
getOutputs() {
|
|
106
|
-
return {
|
|
107
|
-
id: this.id,
|
|
108
|
-
resourceName: this.resourceName,
|
|
109
|
-
};
|
|
112
|
+
}, { ...this.opts, parent: this });
|
|
110
113
|
}
|
|
111
114
|
createPrivateLink(acr) {
|
|
112
115
|
const { rsGroup, network } = this.args;
|
|
@@ -116,4 +119,4 @@ class ContainerRegistry extends base_1.BaseResourceComponent {
|
|
|
116
119
|
}
|
|
117
120
|
}
|
|
118
121
|
exports.ContainerRegistry = ContainerRegistry;
|
|
119
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udGFpbmVyUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWtzL0NvbnRhaW5lclJlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVEQUF5QztBQUN6QyxpRkFBbUU7QUFHbkUsa0NBQWdFO0FBRWhFLDZEQUEwRDtBQVkxRCxNQUFhLGlCQUFrQixTQUFRLDRCQUE0QztJQUNqRSxFQUFFLENBQXdCO0lBQzFCLFlBQVksQ0FBd0I7SUFFcEQsWUFBWSxJQUFZLEVBQUUsSUFBMkIsRUFBRSxJQUFzQztRQUMzRixLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU3QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVCLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFFN0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtTQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLFNBQVM7UUFDZixNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ2pILE1BQU0sYUFBYSxHQUFHLEdBQUcsS0FBSyxTQUFTLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFD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
|
package/apim/Apim.d.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import * as apim from '@pulumi/azure-native/apimanagement';
|
|
2
|
+
import * as certHelpers from '../helpers/certHelpers';
|
|
3
|
+
import * as inputs from '@pulumi/azure-native/types/input';
|
|
4
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
5
|
+
import * as types from '../types';
|
|
6
|
+
import { ApimProductArgs } from './ApimProduct';
|
|
7
|
+
import { BaseResourceComponent, CommonBaseArgs } from '../base';
|
|
8
|
+
type ApimCertType = certHelpers.CertType | certHelpers.VaultCertType | certHelpers.CertFile;
|
|
9
|
+
export interface ApimArgs extends CommonBaseArgs, types.WithUserAssignedIdentity, types.WithNetworkArgs, types.WithLogs, Omit<apim.ApiManagementServiceArgs, types.CommonProps | 'serviceName' | 'sku' | 'additionalLocations' | 'certificates' | 'hostnameConfigurations' | 'publicNetworkAccess' | 'virtualNetworkType' | 'virtualNetworkConfiguration' | 'publisherName' | 'publisherEmail' | 'customProperties'> {
|
|
10
|
+
publisherEmail?: pulumi.Input<string>;
|
|
11
|
+
publisherName?: pulumi.Input<string>;
|
|
12
|
+
customProperties?: string[];
|
|
13
|
+
hostnameConfigurations?: Array<{
|
|
14
|
+
hostName: pulumi.Input<string>;
|
|
15
|
+
negotiateClientCertificate: boolean;
|
|
16
|
+
defaultSslBinding: boolean;
|
|
17
|
+
cert?: ApimCertType;
|
|
18
|
+
}>;
|
|
19
|
+
additionalLocations?: inputs.apimanagement.AdditionalLocationArgs[] | undefined;
|
|
20
|
+
certificates?: {
|
|
21
|
+
caCerts?: Array<ApimCertType>;
|
|
22
|
+
rootCerts?: Array<ApimCertType>;
|
|
23
|
+
};
|
|
24
|
+
sku: {
|
|
25
|
+
capacity: pulumi.Input<number>;
|
|
26
|
+
name: apim.SkuType;
|
|
27
|
+
};
|
|
28
|
+
disableSignIn?: boolean;
|
|
29
|
+
permissions?: Array<Omit<types.GrantIdentityRoles, 'identity'>>;
|
|
30
|
+
products?: Array<Omit<ApimProductArgs, 'rsGroup' | 'serviceName' | 'vaultInfo' | 'groupRoles' | 'enableDiagnostic'> & {
|
|
31
|
+
name: string;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
export declare class Apim extends BaseResourceComponent<ApimArgs> {
|
|
35
|
+
readonly id: pulumi.Output<string>;
|
|
36
|
+
readonly resourceName: pulumi.Output<string>;
|
|
37
|
+
constructor(name: string, args: ApimArgs, opts?: pulumi.ComponentResourceOptions);
|
|
38
|
+
getOutputs(): {
|
|
39
|
+
id: pulumi.Output<string>;
|
|
40
|
+
resourceName: pulumi.Output<string>;
|
|
41
|
+
};
|
|
42
|
+
private getCerts;
|
|
43
|
+
private createApim;
|
|
44
|
+
private buildEntraID;
|
|
45
|
+
private buildDisableSigIn;
|
|
46
|
+
private buildPrivateLink;
|
|
47
|
+
private buildLogs;
|
|
48
|
+
private buildProducts;
|
|
49
|
+
private buildGroupRoles;
|
|
50
|
+
}
|
|
51
|
+
export {};
|