@drunk-pulumi/azure 0.0.48 → 0.0.50
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 +2 -2
- package/Aks/Helper.js +5 -5
- package/Aks/Identity.d.ts +2 -2
- package/Aks/Identity.js +5 -5
- package/Aks/index.d.ts +13 -13
- package/Aks/index.js +99 -89
- package/Apim/Helpers.d.ts +1 -1
- package/Apim/Helpers.js +2 -2
- package/AzAd/Identity.d.ts +7 -7
- package/AzAd/Identity.js +49 -43
- package/Builder/AksBuilder.d.ts +1 -1
- package/Builder/AksBuilder.js +7 -3
- package/Builder/ApimApiBuilder.d.ts +3 -3
- package/Builder/ApimApiBuilder.js +11 -11
- package/Builder/ApimBuilder.d.ts +1 -1
- package/Builder/ApimBuilder.js +47 -47
- package/Builder/ApimPolicyBuilder.d.ts +1 -1
- package/Builder/ApimPolicyBuilder.js +21 -21
- package/Builder/ApimProductBuilder.d.ts +2 -2
- package/Builder/ApimProductBuilder.js +27 -25
- package/Builder/ApimRootBuilder.d.ts +3 -3
- package/Builder/ApimRootBuilder.js +3 -3
- package/Builder/ApimWorkspaceBuilder.d.ts +2 -2
- package/Builder/ApimWorkspaceBuilder.js +2 -2
- package/Builder/DnsZoneBuilder.d.ts +2 -2
- package/Builder/DnsZoneBuilder.js +6 -6
- package/Builder/PrivateDnsZoneBuilder.d.ts +2 -2
- package/Builder/PrivateDnsZoneBuilder.js +6 -6
- package/Builder/ResourceBuilder.d.ts +1 -1
- package/Builder/ResourceBuilder.js +33 -9
- package/Builder/SqlBuilder.d.ts +1 -1
- package/Builder/SqlBuilder.js +2 -2
- package/Builder/StorageBuilder.d.ts +1 -1
- package/Builder/StorageBuilder.js +7 -7
- package/Builder/VdiBuilder.d.ts +1 -2
- package/Builder/VdiBuilder.js +7 -7
- package/Builder/VmBuilder.d.ts +1 -1
- package/Builder/VmBuilder.js +4 -4
- package/Builder/types/askBuilder.d.ts +6 -6
- package/Builder/types/genericBuilder.d.ts +7 -6
- package/Builder/types/genericBuilder.js +1 -1
- package/Builder/types/resourceBuilder.d.ts +8 -8
- package/Cdn/CdnEndpoint.d.ts +2 -2
- package/Cdn/CdnEndpoint.js +19 -19
- package/Cdn/index.d.ts +4 -6
- package/Cdn/index.js +4 -5
- package/Common/AzureEnv.d.ts +6 -10
- package/Common/AzureEnv.js +16 -16
- package/Common/GlobalEnv.d.ts +1 -3
- package/Common/GlobalEnv.js +5 -11
- package/Common/ResourceEnv.d.ts +1 -2
- package/Common/ResourceEnv.js +15 -15
- package/ContainerRegistry/index.d.ts +5 -15
- package/ContainerRegistry/index.js +25 -34
- package/Core/{KeyGenetators.js → KeyGenerators.js} +1 -1
- package/Core/ResourceGroup.d.ts +4 -4
- package/Core/ResourceGroup.js +3 -3
- package/KeyVault/Helper.d.ts +3 -3
- package/KeyVault/Helper.js +16 -12
- package/KeyVault/index.d.ts +2 -3
- package/KeyVault/index.js +13 -13
- package/Logs/AppInsight.d.ts +3 -3
- package/Logs/AppInsight.js +10 -10
- package/Logs/Helpers.d.ts +4 -4
- package/Logs/Helpers.js +16 -16
- package/MySql/index.d.ts +5 -5
- package/MySql/index.js +22 -22
- package/Postgresql/index.d.ts +4 -4
- package/Postgresql/index.js +21 -21
- package/RedisCache/index.d.ts +2 -2
- package/RedisCache/index.js +14 -14
- package/ServiceBus/index.d.ts +10 -10
- package/ServiceBus/index.js +17 -17
- package/SignalR/index.d.ts +5 -5
- package/SignalR/index.js +18 -18
- package/Sql/index.d.ts +8 -8
- package/Sql/index.js +37 -35
- package/Storage/Helper.d.ts +3 -3
- package/Storage/Helper.js +8 -8
- package/Storage/index.d.ts +9 -9
- package/Storage/index.js +26 -24
- package/VM/index.d.ts +11 -11
- package/VM/index.js +15 -15
- package/VNet/Helper.d.ts +5 -5
- package/VNet/Helper.js +19 -19
- package/VNet/PrivateEndpoint.d.ts +2 -2
- package/VNet/PrivateEndpoint.js +4 -4
- package/VNet/Vnet.d.ts +8 -8
- package/VNet/Vnet.js +13 -13
- package/VNet/index.d.ts +1 -1
- package/Web/AppConfig.d.ts +2 -2
- package/Web/AppConfig.js +8 -8
- package/package.json +7 -7
- package/types.d.ts +29 -22
- package/config.d.ts +0 -9
- package/config.js +0 -7
- /package/Core/{KeyGenetators.d.ts → KeyGenerators.d.ts} +0 -0
package/Aks/Helper.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { KeyVaultInfo, ResourceInfo, ResourceType } from
|
|
2
|
-
import { Output } from
|
|
1
|
+
import { KeyVaultInfo, ResourceInfo, ResourceType } from '../types';
|
|
2
|
+
import { Output } from '@pulumi/pulumi';
|
|
3
3
|
/** Get AKS Config from Managed Cluster*/
|
|
4
4
|
export declare const getAksConfig: ({ name, groupName, formattedName, disableLocalAccounts, }: {
|
|
5
5
|
name: string;
|
package/Aks/Helper.js
CHANGED
|
@@ -42,7 +42,7 @@ const getAksConfig = async ({ name, groupName, formattedName, disableLocalAccoun
|
|
|
42
42
|
resourceName: aksName,
|
|
43
43
|
resourceGroupName: group,
|
|
44
44
|
});
|
|
45
|
-
return Buffer.from(aks.kubeconfigs[0].value,
|
|
45
|
+
return Buffer.from(aks.kubeconfigs[0].value, 'base64').toString('utf8');
|
|
46
46
|
};
|
|
47
47
|
exports.getAksConfig = getAksConfig;
|
|
48
48
|
/** Get AKS Config from Key Vault*/
|
|
@@ -54,7 +54,7 @@ const getAksVaultConfig = async ({ name, version, vaultInfo, formattedName, }) =
|
|
|
54
54
|
vaultInfo,
|
|
55
55
|
nameFormatted: false,
|
|
56
56
|
});
|
|
57
|
-
return rs?.value ||
|
|
57
|
+
return rs?.value || '';
|
|
58
58
|
};
|
|
59
59
|
exports.getAksVaultConfig = getAksVaultConfig;
|
|
60
60
|
const getAksPrivateDnz = ({ name, groupName, formattedName, }) => {
|
|
@@ -67,10 +67,10 @@ const getAksPrivateDnz = ({ name, groupName, formattedName, }) => {
|
|
|
67
67
|
return aks.apply((a) => {
|
|
68
68
|
if (!a.privateFQDN)
|
|
69
69
|
return undefined;
|
|
70
|
-
const dnsName = a.privateFQDN.split(
|
|
70
|
+
const dnsName = a.privateFQDN.split(':').slice(1).join('.');
|
|
71
71
|
const rsGroup = a.nodeResourceGroup;
|
|
72
72
|
return {
|
|
73
|
-
|
|
73
|
+
name: dnsName,
|
|
74
74
|
group: { resourceGroupName: rsGroup, location: AzureEnv_1.currentRegionName },
|
|
75
75
|
id: (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourceGroups/${rsGroup}/providers/Microsoft.Network/privateDnsZones/${dnsName}`,
|
|
76
76
|
};
|
|
@@ -94,4 +94,4 @@ exports.getAksPrivateDnz = getAksPrivateDnz;
|
|
|
94
94
|
// });
|
|
95
95
|
// });
|
|
96
96
|
// };
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Frcy9IZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3RkFBMEU7QUFDMUUsNkNBQW9FO0FBRXBFLCtDQUErQztBQUMvQywyQ0FBcUQ7QUFDckQsaURBQXVFO0FBRXZFLHlDQUF5QztBQUNsQyxNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsRUFDakMsSUFBSSxFQUNKLFNBQVMsRUFDVCxhQUFhLEVBQ2Isb0JBQW9CLEdBTXJCLEVBQW1CLEVBQUU7SUFDcEIsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN4RCxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBQSw2QkFBb0IsRUFBQyxTQUFTLENBQUMsQ0FBQztJQUUxRSxNQUFNLEdBQUcsR0FBRyxvQkFBb0I7UUFDOUIsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsaUNBQWlDLENBQUM7WUFDdkQsWUFBWSxFQUFFLE9BQU87WUFDckIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDO1FBQ0osQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsa0NBQWtDLENBQUM7WUFDeEQsWUFBWSxFQUFFLE9BQU87WUFDckIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7SUFFUCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQXpCVyxRQUFBLFlBQVksZ0JBeUJ2QjtBQUVGLG1DQUFtQztBQUM1QixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxFQUN0QyxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxhQUFhLEdBTWQsRUFBbUIsRUFBRTtJQUNwQixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDO1FBQ3pCLElBQUksRUFBRSxHQUFHLE9BQU8sU0FBUztRQUN6QixPQUFPO1FBQ1AsU0FBUztRQUNULGFBQWEsRUFBRSxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsaUJBQWlCLHFCQW1CNUI7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQUMsRUFDL0IsSUFBSSxFQUNKLFNBQVMsRUFDVCxhQUFhLEdBQ0EsRUFBb0MsRUFBRTtJQUNuRCxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUEsbUJBQVUsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMvQyxTQUFTLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUEsNkJBQW9CLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEUsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUM7UUFDbkQsWUFBWSxFQUFFLElBQUk7UUFDbEIsaUJBQWlCLEVBQUUsU0FBUztLQUM3QixDQUFDLENBQUM7SUFFSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNyQixJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVc7WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUNyQyxNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVELE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxpQkFBa0IsQ0FBQztRQUVyQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLDRCQUFpQixFQUFFO1lBQ2xFLEVBQUUsRUFBRSxJQUFBLG9CQUFXLEVBQUEsa0JBQWtCLHlCQUFjLG1CQUFtQixPQUFPLGdEQUFnRCxPQUFPLEVBQUU7U0FDbkgsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQXhCVyxRQUFBLGdCQUFnQixvQkF3QjNCO0FBRUYsMENBQTBDO0FBQzFDLFlBQVk7QUFDWixVQUFVO0FBQ1YsZUFBZTtBQUNmLG1CQUFtQjtBQUNuQixxREFBcUQ7QUFDckQsc0VBQXNFO0FBQ3RFLDhCQUE4QjtBQUM5QixzQkFBc0I7QUFDdEIsb0NBQW9DO0FBQ3BDLGNBQWM7QUFDZCx3QkFBd0I7QUFDeEIsa0NBQWtDO0FBQ2xDLGdCQUFnQjtBQUNoQixVQUFVO0FBQ1YsUUFBUTtBQUNSLEtBQUsifQ==
|
package/Aks/Identity.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BasicArgs, KeyVaultInfo } from
|
|
1
|
+
import { BasicArgs, KeyVaultInfo } from '../types';
|
|
2
2
|
interface Props extends BasicArgs {
|
|
3
3
|
name: string;
|
|
4
|
-
vaultInfo
|
|
4
|
+
vaultInfo?: KeyVaultInfo;
|
|
5
5
|
}
|
|
6
6
|
declare const _default: ({ name, vaultInfo, dependsOn }: Props) => import("../AzAd/Identity").IdentityResult;
|
|
7
7
|
export default _default;
|
package/Aks/Identity.js
CHANGED
|
@@ -10,24 +10,24 @@ const AzureEnv_1 = require("../Common/AzureEnv");
|
|
|
10
10
|
//** The AzAD app Identity for Azure Kubernetes for RBAC */
|
|
11
11
|
exports.default = ({ name, vaultInfo, dependsOn }) => {
|
|
12
12
|
//AKS need this permission for AAD integration
|
|
13
|
-
const graphAccess = (0, GraphDefinition_1.getGraphPermissions)({ name:
|
|
13
|
+
const graphAccess = (0, GraphDefinition_1.getGraphPermissions)({ name: 'User.Read', type: 'Scope' }, { name: 'Group.Read.All', type: 'Scope' },
|
|
14
14
|
//{ name: 'Directory.Read.All', type: 'Scope' },
|
|
15
|
-
{ name:
|
|
15
|
+
{ name: 'Directory.Read.All', type: 'Role' });
|
|
16
16
|
const serverIdentity = (0, Identity_1.default)({
|
|
17
17
|
name,
|
|
18
18
|
createClientSecret: true,
|
|
19
19
|
createPrincipal: true,
|
|
20
20
|
requiredResourceAccesses: [graphAccess],
|
|
21
21
|
publicClient: false,
|
|
22
|
-
appType:
|
|
22
|
+
appType: 'api',
|
|
23
23
|
vaultInfo,
|
|
24
24
|
dependsOn,
|
|
25
25
|
});
|
|
26
26
|
(0, RoleAssignment_1.roleAssignment)({
|
|
27
27
|
name: `${name}-aks-identity-acr-pull`,
|
|
28
28
|
principalId: serverIdentity.principalId,
|
|
29
|
-
principalType:
|
|
30
|
-
roleName:
|
|
29
|
+
principalType: 'ServicePrincipal',
|
|
30
|
+
roleName: 'AcrPull',
|
|
31
31
|
scope: AzureEnv_1.defaultScope,
|
|
32
32
|
dependsOn: serverIdentity.resource,
|
|
33
33
|
});
|
package/Aks/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import * as native from
|
|
2
|
-
import * as pulumi from
|
|
3
|
-
import { Input, Output } from
|
|
4
|
-
import { BasicResourceArgs, KeyVaultInfo, ResourceInfo } from
|
|
5
|
-
import { EnvRolesResults } from
|
|
6
|
-
import * as inputs from
|
|
7
|
-
import { IdentityResult } from
|
|
8
|
-
import { ManagedCluster } from
|
|
1
|
+
import * as native from '@pulumi/azure-native';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { Input, Output } from '@pulumi/pulumi';
|
|
4
|
+
import { BasicResourceArgs, KeyVaultInfo, ResourceInfo } from '../types';
|
|
5
|
+
import { EnvRolesResults } from '../AzAd/EnvRoles';
|
|
6
|
+
import * as inputs from '@pulumi/azure-native/types/input';
|
|
7
|
+
import { IdentityResult } from '../AzAd/Identity';
|
|
8
|
+
import { ManagedCluster } from '@pulumi/azure-native/containerservice';
|
|
9
9
|
export declare enum VmSizes {
|
|
10
10
|
/** 32G RAM - 4CPU - $221.92 */
|
|
11
11
|
Standard_E4as_v4 = "Standard_E4as_v4",
|
|
@@ -52,7 +52,7 @@ export type AskFeatureProps = {
|
|
|
52
52
|
enableDiagnosticSetting?: boolean;
|
|
53
53
|
};
|
|
54
54
|
export type AksAccessProps = {
|
|
55
|
-
envRoles
|
|
55
|
+
envRoles?: EnvRolesResults;
|
|
56
56
|
authorizedIPRanges?: Input<string>[];
|
|
57
57
|
disableLocalAccounts?: boolean;
|
|
58
58
|
};
|
|
@@ -64,8 +64,8 @@ export type AksNetworkProps = {
|
|
|
64
64
|
ipAddressPrefixId?: pulumi.Input<string>;
|
|
65
65
|
};
|
|
66
66
|
};
|
|
67
|
-
export type AksNodePoolProps = Omit<NodePoolProps,
|
|
68
|
-
export type DefaultAksNodePoolProps = Omit<AksNodePoolProps,
|
|
67
|
+
export type AksNodePoolProps = Omit<NodePoolProps, 'subnetId' | 'aksId'>;
|
|
68
|
+
export type DefaultAksNodePoolProps = Omit<AksNodePoolProps, 'name' | 'mode'>;
|
|
69
69
|
export interface AksProps extends BasicResourceArgs {
|
|
70
70
|
tier?: native.containerservice.ManagedClusterSKUTier;
|
|
71
71
|
addon?: AskAddonProps;
|
|
@@ -82,7 +82,7 @@ export interface AksProps extends BasicResourceArgs {
|
|
|
82
82
|
sshKeys: Array<pulumi.Input<string>>;
|
|
83
83
|
};
|
|
84
84
|
nodePools?: Array<AksNodePoolProps>;
|
|
85
|
-
vaultInfo
|
|
85
|
+
vaultInfo?: KeyVaultInfo;
|
|
86
86
|
logWpId?: Input<string>;
|
|
87
87
|
/**Lock resource from delete*/
|
|
88
88
|
lock?: boolean;
|
|
@@ -91,7 +91,7 @@ export type AksResults = ResourceInfo & {
|
|
|
91
91
|
serviceIdentity: IdentityResult;
|
|
92
92
|
aks: ManagedCluster;
|
|
93
93
|
disableLocalAccounts?: boolean;
|
|
94
|
-
getKubeConfig: () => Output<string
|
|
94
|
+
getKubeConfig: () => Output<string> | undefined;
|
|
95
95
|
};
|
|
96
96
|
declare const _default: ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features, addon, tier, lock, dependsOn, importUri, ignoreChanges, }: AksProps) => Promise<AksResults>;
|
|
97
97
|
export default _default;
|
package/Aks/index.js
CHANGED
|
@@ -36,7 +36,7 @@ const Locker_1 = __importDefault(require("../Core/Locker"));
|
|
|
36
36
|
const Identity_1 = __importDefault(require("./Identity"));
|
|
37
37
|
const StackEnv_1 = require("../Common/StackEnv");
|
|
38
38
|
const Helpers_1 = require("../Logs/Helpers");
|
|
39
|
-
const
|
|
39
|
+
const Common_1 = require("../Common");
|
|
40
40
|
const RoleAssignment_1 = require("../AzAd/RoleAssignment");
|
|
41
41
|
const Helper_1 = require("./Helper");
|
|
42
42
|
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
@@ -47,11 +47,11 @@ const autoScaleFor = ({ enableAutoScaling, nodeType, env, }) => {
|
|
|
47
47
|
let maxCount = 3;
|
|
48
48
|
if (env === AzureEnv_1.Environments.Prd) {
|
|
49
49
|
switch (nodeType) {
|
|
50
|
-
case
|
|
50
|
+
case 'User':
|
|
51
51
|
maxCount = 5;
|
|
52
52
|
break;
|
|
53
|
-
case
|
|
54
|
-
case
|
|
53
|
+
case 'Default':
|
|
54
|
+
case 'System':
|
|
55
55
|
default:
|
|
56
56
|
maxCount = 3;
|
|
57
57
|
break;
|
|
@@ -65,9 +65,9 @@ const autoScaleFor = ({ enableAutoScaling, nodeType, env, }) => {
|
|
|
65
65
|
};
|
|
66
66
|
};
|
|
67
67
|
const defaultNodePoolProps = {
|
|
68
|
-
availabilityZones: AzureEnv_1.isPrd ? [
|
|
68
|
+
availabilityZones: AzureEnv_1.isPrd ? ['1', '2', '3'] : undefined,
|
|
69
69
|
type: native.containerservice.AgentPoolType.VirtualMachineScaleSets,
|
|
70
|
-
vmSize:
|
|
70
|
+
vmSize: 'Standard_B2s',
|
|
71
71
|
maxPods: 50,
|
|
72
72
|
enableFIPS: false,
|
|
73
73
|
enableNodePublicIP: false,
|
|
@@ -109,18 +109,18 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
109
109
|
enableAzureKeyVault: false,
|
|
110
110
|
enableKubeDashboard: false,
|
|
111
111
|
}, tier = native.containerservice.ManagedClusterSKUTier.Free, lock = true, dependsOn = [], importUri, ignoreChanges = [], }) => {
|
|
112
|
-
const aksName = (0,
|
|
112
|
+
const aksName = (0, Common_1.getAksName)(name);
|
|
113
113
|
const secretName = `${aksName}-config`;
|
|
114
114
|
const acrScope = acr?.enable ? acr.id ?? AzureEnv_1.defaultScope : undefined;
|
|
115
|
-
const nodeResourceGroup = (0,
|
|
115
|
+
const nodeResourceGroup = (0, Common_1.getResourceGroupName)(`${aksName}-nodes`);
|
|
116
116
|
//Auto detect and disable Local Account
|
|
117
|
-
if (aksAccess.disableLocalAccounts === undefined) {
|
|
117
|
+
if (aksAccess.disableLocalAccounts === undefined && vaultInfo) {
|
|
118
118
|
aksAccess.disableLocalAccounts = await (0, KeyVaultBase_1.getKeyVaultBase)(vaultInfo.name)
|
|
119
119
|
.checkSecretExist(secretName)
|
|
120
120
|
.catch(() => false);
|
|
121
121
|
}
|
|
122
122
|
if (ignoreChanges.length <= 0) {
|
|
123
|
-
ignoreChanges.push(
|
|
123
|
+
ignoreChanges.push('privateLinkResources', 'networkProfile', 'linuxProfile', 'windowsProfile');
|
|
124
124
|
}
|
|
125
125
|
const serviceIdentity = (0, Identity_1.default)({
|
|
126
126
|
name: aksName,
|
|
@@ -147,13 +147,13 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
147
147
|
disableRunCommand: true,
|
|
148
148
|
enablePrivateCluster: features?.enablePrivateCluster,
|
|
149
149
|
enablePrivateClusterPublicFQDN: true,
|
|
150
|
-
privateDNSZone:
|
|
150
|
+
privateDNSZone: 'system',
|
|
151
151
|
},
|
|
152
152
|
addonProfiles: {
|
|
153
153
|
azureKeyvaultSecretsProvider: {
|
|
154
154
|
config: addon.enableAzureKeyVault
|
|
155
155
|
? {
|
|
156
|
-
enableSecretRotation:
|
|
156
|
+
enableSecretRotation: 'true',
|
|
157
157
|
}
|
|
158
158
|
: undefined,
|
|
159
159
|
enabled: Boolean(addon.enableAzureKeyVault),
|
|
@@ -196,7 +196,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
196
196
|
...defaultNodePool,
|
|
197
197
|
...autoScaleFor({
|
|
198
198
|
env: AzureEnv_1.currentEnv,
|
|
199
|
-
nodeType:
|
|
199
|
+
nodeType: 'System',
|
|
200
200
|
enableAutoScaling: features?.enableAutoScale,
|
|
201
201
|
// powerState: {
|
|
202
202
|
// code: "Running",
|
|
@@ -205,13 +205,13 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
205
205
|
// maxSurge: "10%",
|
|
206
206
|
// },
|
|
207
207
|
}),
|
|
208
|
-
name:
|
|
209
|
-
mode:
|
|
208
|
+
name: 'defaultnodes',
|
|
209
|
+
mode: 'System',
|
|
210
210
|
count: 1,
|
|
211
211
|
vnetSubnetID: network.subnetId,
|
|
212
|
-
kubeletDiskType:
|
|
213
|
-
osSKU:
|
|
214
|
-
osType:
|
|
212
|
+
kubeletDiskType: 'OS',
|
|
213
|
+
osSKU: 'Ubuntu',
|
|
214
|
+
osType: 'Linux',
|
|
215
215
|
},
|
|
216
216
|
],
|
|
217
217
|
linuxProfile: linux
|
|
@@ -222,27 +222,27 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
222
222
|
: undefined,
|
|
223
223
|
//This is not inuse
|
|
224
224
|
windowsProfile: {
|
|
225
|
-
adminUsername:
|
|
225
|
+
adminUsername: 'azureuser',
|
|
226
226
|
enableCSIProxy: true,
|
|
227
227
|
},
|
|
228
228
|
autoScalerProfile: {
|
|
229
|
-
balanceSimilarNodeGroups:
|
|
230
|
-
expander:
|
|
231
|
-
maxEmptyBulkDelete:
|
|
232
|
-
maxGracefulTerminationSec:
|
|
233
|
-
maxNodeProvisionTime:
|
|
234
|
-
maxTotalUnreadyPercentage:
|
|
235
|
-
newPodScaleUpDelay:
|
|
236
|
-
okTotalUnreadyCount:
|
|
237
|
-
scaleDownDelayAfterAdd:
|
|
238
|
-
scaleDownDelayAfterDelete:
|
|
239
|
-
scaleDownDelayAfterFailure:
|
|
240
|
-
scaleDownUnneededTime:
|
|
241
|
-
scaleDownUnreadyTime:
|
|
242
|
-
scaleDownUtilizationThreshold:
|
|
243
|
-
scanInterval:
|
|
244
|
-
skipNodesWithLocalStorage:
|
|
245
|
-
skipNodesWithSystemPods:
|
|
229
|
+
balanceSimilarNodeGroups: 'true',
|
|
230
|
+
expander: 'random',
|
|
231
|
+
maxEmptyBulkDelete: '10',
|
|
232
|
+
maxGracefulTerminationSec: '600',
|
|
233
|
+
maxNodeProvisionTime: '15m',
|
|
234
|
+
maxTotalUnreadyPercentage: '45',
|
|
235
|
+
newPodScaleUpDelay: '0s',
|
|
236
|
+
okTotalUnreadyCount: '3',
|
|
237
|
+
scaleDownDelayAfterAdd: '30m',
|
|
238
|
+
scaleDownDelayAfterDelete: '60s',
|
|
239
|
+
scaleDownDelayAfterFailure: '10m',
|
|
240
|
+
scaleDownUnneededTime: '10m',
|
|
241
|
+
scaleDownUnreadyTime: '20m',
|
|
242
|
+
scaleDownUtilizationThreshold: '0.5',
|
|
243
|
+
scanInterval: '60s',
|
|
244
|
+
skipNodesWithLocalStorage: 'false',
|
|
245
|
+
skipNodesWithSystemPods: 'true',
|
|
246
246
|
},
|
|
247
247
|
//Still under preview
|
|
248
248
|
// workloadAutoScalerProfile: enableAutoScale
|
|
@@ -281,12 +281,14 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
281
281
|
},
|
|
282
282
|
disableLocalAccounts: Boolean(aksAccess.disableLocalAccounts),
|
|
283
283
|
enableRBAC: true,
|
|
284
|
-
aadProfile:
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
284
|
+
aadProfile: aksAccess.envRoles
|
|
285
|
+
? {
|
|
286
|
+
enableAzureRBAC: true,
|
|
287
|
+
managed: true,
|
|
288
|
+
adminGroupObjectIDs: [aksAccess.envRoles.admin.objectId],
|
|
289
|
+
tenantID: AzureEnv_1.tenantId,
|
|
290
|
+
}
|
|
291
|
+
: undefined,
|
|
290
292
|
oidcIssuerProfile: { enabled: false },
|
|
291
293
|
storageProfile: {
|
|
292
294
|
blobCSIDriver: {
|
|
@@ -308,7 +310,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
308
310
|
outboundType: features?.enablePrivateCluster || !network.outboundIpAddress
|
|
309
311
|
? native.containerservice.OutboundType.UserDefinedRouting
|
|
310
312
|
: native.containerservice.OutboundType.LoadBalancer,
|
|
311
|
-
loadBalancerSku:
|
|
313
|
+
loadBalancerSku: 'Standard',
|
|
312
314
|
loadBalancerProfile: network.outboundIpAddress
|
|
313
315
|
? {
|
|
314
316
|
outboundIPs: network.outboundIpAddress.ipAddressId
|
|
@@ -334,7 +336,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
334
336
|
ignoreChanges,
|
|
335
337
|
});
|
|
336
338
|
new native.containerservice.MaintenanceConfiguration(`${aksName}-MaintenanceConfiguration`, {
|
|
337
|
-
configName:
|
|
339
|
+
configName: 'default',
|
|
338
340
|
// notAllowedTime: [
|
|
339
341
|
// {
|
|
340
342
|
// end: "2020-11-30T12:00:00Z",
|
|
@@ -365,12 +367,12 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
365
367
|
nodeType: p.mode,
|
|
366
368
|
enableAutoScaling: features.enableAutoScale,
|
|
367
369
|
}),
|
|
368
|
-
count: p.mode ===
|
|
370
|
+
count: p.mode === 'System' ? 1 : 0,
|
|
369
371
|
//orchestratorVersion: kubernetesVersion,
|
|
370
372
|
vnetSubnetID: network.subnetId,
|
|
371
|
-
kubeletDiskType:
|
|
372
|
-
osSKU:
|
|
373
|
-
osType:
|
|
373
|
+
kubeletDiskType: 'OS',
|
|
374
|
+
osSKU: 'Ubuntu',
|
|
375
|
+
osType: 'Linux',
|
|
374
376
|
}));
|
|
375
377
|
}
|
|
376
378
|
//Grant permission for Group
|
|
@@ -381,28 +383,30 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
381
383
|
pulumi
|
|
382
384
|
.all([aks.identity, aks.identityProfile, network.subnetId])
|
|
383
385
|
.apply(([identity, identityProfile, sId]) => {
|
|
384
|
-
if (acrScope && identityProfile && identityProfile[
|
|
386
|
+
if (acrScope && identityProfile && identityProfile['kubeletidentity']) {
|
|
385
387
|
(0, RoleAssignment_1.roleAssignment)({
|
|
386
388
|
name: `${name}-aks-identity-profile-pull`,
|
|
387
|
-
principalId: identityProfile[
|
|
388
|
-
principalType:
|
|
389
|
-
roleName:
|
|
389
|
+
principalId: identityProfile['kubeletidentity'].objectId,
|
|
390
|
+
principalType: 'ServicePrincipal',
|
|
391
|
+
roleName: 'AcrPull',
|
|
390
392
|
scope: acrScope,
|
|
391
393
|
});
|
|
392
|
-
(
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
394
|
+
if (vaultInfo) {
|
|
395
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
396
|
+
name: `${name}-identity-clientId`,
|
|
397
|
+
value: identityProfile['kubeletidentity'].clientId,
|
|
398
|
+
dependsOn: aks,
|
|
399
|
+
contentType: name,
|
|
400
|
+
vaultInfo,
|
|
401
|
+
});
|
|
402
|
+
}
|
|
399
403
|
}
|
|
400
404
|
if (network.subnetId && identity) {
|
|
401
405
|
(0, RoleAssignment_1.roleAssignment)({
|
|
402
406
|
name: `${name}-system-net`,
|
|
403
407
|
principalId: identity.principalId,
|
|
404
|
-
roleName:
|
|
405
|
-
principalType:
|
|
408
|
+
roleName: 'Contributor',
|
|
409
|
+
principalType: 'ServicePrincipal',
|
|
406
410
|
scope: (0, AzureEnv_1.getResourceIdFromInfo)({
|
|
407
411
|
group: (0, AzureEnv_1.parseResourceInfoFromId)(sId).group,
|
|
408
412
|
}),
|
|
@@ -416,16 +420,18 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
416
420
|
formattedName: true,
|
|
417
421
|
disableLocalAccounts: aksAccess.disableLocalAccounts,
|
|
418
422
|
});
|
|
419
|
-
(
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
423
|
+
if (vaultInfo) {
|
|
424
|
+
(0, CustomHelper_1.addCustomSecret)({
|
|
425
|
+
name: secretName,
|
|
426
|
+
value: config,
|
|
427
|
+
formattedName: true,
|
|
428
|
+
dependsOn: aks,
|
|
429
|
+
contentType: aksAccess.disableLocalAccounts
|
|
430
|
+
? `${name}-UserCredentials`
|
|
431
|
+
: `${name}-AdminCredentials`,
|
|
432
|
+
vaultInfo,
|
|
433
|
+
});
|
|
434
|
+
}
|
|
429
435
|
//Diagnostic
|
|
430
436
|
if (features.enableDiagnosticSetting && logWpId) {
|
|
431
437
|
(0, Helpers_1.createDiagnostic)({
|
|
@@ -433,33 +439,37 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
433
439
|
targetResourceId: id,
|
|
434
440
|
logWpId,
|
|
435
441
|
logsCategories: [
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
+
'guard',
|
|
443
|
+
'kube-controller-manager',
|
|
444
|
+
'kube-audit-admin',
|
|
445
|
+
'kube-audit',
|
|
446
|
+
'kube-scheduler',
|
|
447
|
+
'cluster-autoscaler',
|
|
442
448
|
],
|
|
443
449
|
dependsOn: aks,
|
|
444
450
|
});
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
451
|
+
if (vaultInfo) {
|
|
452
|
+
//Apply monitoring for VMScale Sets
|
|
453
|
+
(0, VmSetMonitor_1.default)({
|
|
454
|
+
group: { resourceGroupName: nodeResourceGroup },
|
|
455
|
+
logWpId,
|
|
456
|
+
vaultInfo,
|
|
457
|
+
dependsOn: aks,
|
|
458
|
+
});
|
|
459
|
+
}
|
|
452
460
|
}
|
|
453
461
|
});
|
|
454
462
|
return {
|
|
455
|
-
|
|
463
|
+
name,
|
|
456
464
|
group,
|
|
457
465
|
id: aks.id,
|
|
458
466
|
aks,
|
|
459
467
|
serviceIdentity,
|
|
460
|
-
getKubeConfig: () =>
|
|
461
|
-
.
|
|
462
|
-
|
|
468
|
+
getKubeConfig: () => vaultInfo
|
|
469
|
+
? (0, pulumi_1.output)((0, KeyVaultBase_1.getKeyVaultBase)(vaultInfo.name)
|
|
470
|
+
.getSecret(secretName)
|
|
471
|
+
.then((s) => s.value))
|
|
472
|
+
: undefined,
|
|
463
473
|
};
|
|
464
474
|
};
|
|
465
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLHVEQUF5QztBQUN6QywyQ0FBdUQ7QUFDdkQsa0VBQTJDO0FBRTNDLGlEQVE0QjtBQUM1Qiw0REFBb0M7QUFDcEMsMERBQTRDO0FBQzVDLGlEQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsNkNBQW9FO0FBQ3BFLDJEQUF3RDtBQUV4RCxxQ0FBd0M7QUFDeEMsMkRBQTJEO0FBRTNELG9GQUFvRjtBQUlwRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsR0FBRyxHQUtKLEVBQUUsRUFBRTtJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLElBQUksR0FBRyxLQUFLLHVCQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLE1BQU07Z0JBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLGlCQUFpQjtRQUNqQixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNsRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFB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
|
|
475
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLHVEQUF5QztBQUN6QywyQ0FBdUQ7QUFDdkQsa0VBQTJDO0FBRTNDLGlEQVE0QjtBQUM1Qiw0REFBb0M7QUFDcEMsMERBQTRDO0FBQzVDLGlEQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsc0NBQTZEO0FBQzdELDJEQUF3RDtBQUV4RCxxQ0FBd0M7QUFDeEMsMkRBQTJEO0FBRTNELG9GQUFvRjtBQUlwRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsR0FBRyxHQUtKLEVBQUUsRUFBRTtJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLElBQUksR0FBRyxLQUFLLHVCQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLE1BQU07Z0JBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLGlCQUFpQjtRQUNqQixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNsRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFB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
|
package/Apim/Helpers.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ResourceInfo } from
|
|
1
|
+
import { ResourceInfo } from '../types';
|
|
2
2
|
export declare const getApimInfo: (nameAndGroup: string) => ResourceInfo;
|
package/Apim/Helpers.js
CHANGED
|
@@ -9,10 +9,10 @@ const getApimInfo = (nameAndGroup) => {
|
|
|
9
9
|
const rgName = (0, Naming_1.getResourceGroupName)(nameAndGroup);
|
|
10
10
|
const id = (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourceGroups/${rgName}/providers/Microsoft.ApiManagement/service/${name}`;
|
|
11
11
|
return {
|
|
12
|
-
|
|
12
|
+
name,
|
|
13
13
|
group: { resourceGroupName: rgName, location: AzureEnv_1.currentRegionName },
|
|
14
14
|
id,
|
|
15
15
|
};
|
|
16
16
|
};
|
|
17
17
|
exports.getApimInfo = getApimInfo;
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcGltL0hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQXFFO0FBQ3JFLDJDQUE2QztBQUM3QyxpREFBdUU7QUFFaEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFvQixFQUFnQixFQUFFO0lBQ2hFLE1BQU0sSUFBSSxHQUFHLElBQUEsb0JBQVcsRUFBQyxZQUFZLENBQUMsQ0FBQztJQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFBLDZCQUFvQixFQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sRUFBRSxHQUFHLElBQUEsb0JBQVcsRUFBQSxrQkFBa0IseUJBQWMsbUJBQW1CLE1BQU0sOENBQThDLElBQUksRUFBRSxDQUFDO0lBRXBJLE9BQU87UUFDTCxJQUFJO1FBQ0osS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSw0QkFBaUIsRUFBRTtRQUNqRSxFQUFFO0tBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQztBQVZXLFFBQUEsV0FBVyxlQVV0QiJ9
|
package/AzAd/Identity.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as azureAD from
|
|
2
|
-
import * as pulumi from
|
|
3
|
-
import { Output } from
|
|
4
|
-
import { ApplicationApiOauth2PermissionScope, ApplicationAppRole,
|
|
5
|
-
import { BasicArgs, IdentityRoleAssignment, KeyVaultInfo } from
|
|
1
|
+
import * as azureAD from '@pulumi/azuread';
|
|
2
|
+
import * as pulumi from '@pulumi/pulumi';
|
|
3
|
+
import { Output } from '@pulumi/pulumi';
|
|
4
|
+
import { ApplicationApiOauth2PermissionScope, ApplicationAppRole, ApplicationOptionalClaims, ApplicationRequiredResourceAccess } from '@pulumi/azuread/types/input';
|
|
5
|
+
import { BasicArgs, IdentityRoleAssignment, KeyVaultInfo } from '../types';
|
|
6
6
|
type PreAuthApplicationProps = {
|
|
7
7
|
appId: string;
|
|
8
8
|
oauth2PermissionNames: string[];
|
|
@@ -16,7 +16,7 @@ interface IdentityProps extends BasicArgs, IdentityRoleAssignment {
|
|
|
16
16
|
publicClient?: boolean;
|
|
17
17
|
createPrincipal?: boolean;
|
|
18
18
|
replyUrls?: pulumi.Input<pulumi.Input<string>[]>;
|
|
19
|
-
appType?:
|
|
19
|
+
appType?: 'spa' | 'web' | 'api';
|
|
20
20
|
allowMultiOrg?: boolean;
|
|
21
21
|
appRoles?: pulumi.Input<pulumi.Input<ApplicationAppRole>[]>;
|
|
22
22
|
oauth2Permissions?: pulumi.Input<pulumi.Input<ApplicationApiOauth2PermissionScope>[]>;
|
|
@@ -24,7 +24,7 @@ interface IdentityProps extends BasicArgs, IdentityRoleAssignment {
|
|
|
24
24
|
preAuthApplications?: PreAuthApplicationProps[];
|
|
25
25
|
requiredResourceAccesses?: pulumi.Input<pulumi.Input<ApplicationRequiredResourceAccess>[]>;
|
|
26
26
|
optionalClaims?: pulumi.Input<ApplicationOptionalClaims>;
|
|
27
|
-
vaultInfo
|
|
27
|
+
vaultInfo?: KeyVaultInfo;
|
|
28
28
|
}
|
|
29
29
|
export type IdentityResult = {
|
|
30
30
|
name: string;
|