@drunk-pulumi/azure 1.0.3 → 1.0.5
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.js +4 -3
- package/Aks/Identity.js +3 -3
- package/Aks/index.d.ts +8 -7
- package/Aks/index.js +73 -57
- package/Automation/index.d.ts +1 -1
- package/Automation/index.js +5 -5
- package/AzAd/EnvRoles.Consts.d.ts +13 -8
- package/AzAd/EnvRoles.Consts.js +51 -51
- package/AzAd/EnvRoles.d.ts +3 -3
- package/AzAd/EnvRoles.js +10 -10
- package/AzAd/Group.d.ts +2 -2
- package/AzAd/Group.js +12 -12
- package/AzAd/Identities/AzDevOpsIdentity.d.ts +1 -1
- package/AzAd/Identities/AzDevOpsIdentity.js +9 -6
- package/AzAd/Identities/AzDevOpsManagedIdentity.d.ts +2 -2
- package/AzAd/Identities/AzDevOpsManagedIdentity.js +6 -3
- package/AzAd/RoleAssignment.d.ts +3 -3
- package/AzAd/RoleAssignment.js +3 -3
- package/AzAd/RoleDefinitions/JustInTimeRequestRole.js +10 -10
- package/Builder/AksBuilder.js +15 -1
- package/Builder/PrivateDnsZoneBuilder.d.ts +2 -1
- package/Builder/PrivateDnsZoneBuilder.js +41 -23
- package/Builder/ResourceBuilder.js +12 -6
- package/Builder/SqlBuilder.js +7 -1
- package/Builder/StorageBuilder.js +14 -14
- package/Builder/VaultBuilder.d.ts +2 -1
- package/Builder/VaultBuilder.js +8 -1
- package/Builder/types/resourceBuilder.d.ts +2 -0
- package/Builder/types/sqlBuilder.d.ts +2 -1
- package/Builder/types/storageBuilder.d.ts +10 -8
- package/Builder/types/vaultBuilder.d.ts +6 -1
- package/Cdn/CdnEndpoint.d.ts +2 -3
- package/Cdn/CdnEndpoint.js +15 -17
- package/Cdn/CdnRules.d.ts +6 -2
- package/Cdn/CdnRules.js +51 -56
- package/Certificate/index.d.ts +2 -2
- package/Certificate/index.js +29 -29
- package/Common/AzureEnv.d.ts +2 -3
- package/Common/AzureEnv.js +21 -8
- package/Common/Naming/index.d.ts +1 -1
- package/Common/Naming/index.js +65 -61
- package/Common/index.d.ts +11 -6
- package/Common/index.js +6 -1
- package/ContainerRegistry/index.d.ts +5 -5
- package/ContainerRegistry/index.js +75 -50
- package/Core/KeyGenerators.d.ts +5 -5
- package/Core/KeyGenerators.js +5 -5
- package/CustomRoles/index.js +3 -3
- package/KeyVault/CustomHelper.d.ts +4 -4
- package/KeyVault/CustomHelper.js +7 -7
- package/KeyVault/Helper.js +12 -9
- package/Logs/Helpers.d.ts +1 -1
- package/RedisCache/index.d.ts +2 -2
- package/RedisCache/index.js +10 -5
- package/SignalR/index.d.ts +4 -4
- package/SignalR/index.js +26 -21
- package/Sql/SqlDb.js +2 -3
- package/Sql/index.d.ts +3 -4
- package/Sql/index.js +11 -11
- package/Storage/Helper.d.ts +1 -1
- package/Storage/index.d.ts +2 -3
- package/Storage/index.js +2 -2
- package/VNet/FirewallPolicies/AksFirewallPolicy.d.ts +4 -3
- package/VNet/FirewallPolicies/AksFirewallPolicy.js +116 -123
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.d.ts +4 -3
- package/VNet/FirewallPolicies/CloudPCFirewallPolicy.js +150 -132
- package/VNet/Helper.d.ts +1 -0
- package/VNet/Helper.js +25 -19
- package/VNet/index.d.ts +9 -9
- package/VNet/index.js +58 -49
- package/VNet/types.d.ts +9 -6
- package/package.json +6 -6
package/Aks/Helper.js
CHANGED
|
@@ -26,6 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.getAksPrivateDnz = exports.getAksVaultConfig = exports.getAksConfig = void 0;
|
|
27
27
|
const cs = __importStar(require("@pulumi/azure-native/containerservice"));
|
|
28
28
|
const Common_1 = require("../Common");
|
|
29
|
+
const GlobalEnv_1 = require("../Common/GlobalEnv");
|
|
29
30
|
const Helper_1 = require("../KeyVault/Helper");
|
|
30
31
|
const pulumi_1 = require("@pulumi/pulumi");
|
|
31
32
|
const AzureEnv_1 = require("../Common/AzureEnv");
|
|
@@ -65,14 +66,14 @@ const getAksPrivateDnz = (aksInfo) => {
|
|
|
65
66
|
return aks.apply((a) => {
|
|
66
67
|
if (!a.privateFQDN)
|
|
67
68
|
return undefined;
|
|
68
|
-
const dnsName = a.privateFQDN.split('
|
|
69
|
+
const dnsName = a.privateFQDN.split('.').slice(1).join('.');
|
|
69
70
|
const rsGroup = a.nodeResourceGroup;
|
|
70
71
|
return {
|
|
71
72
|
name: dnsName,
|
|
72
|
-
group: { resourceGroupName: rsGroup, location:
|
|
73
|
+
group: { resourceGroupName: rsGroup, location: GlobalEnv_1.globalKeyName },
|
|
73
74
|
id: (0, pulumi_1.interpolate) `/subscriptions/${AzureEnv_1.subscriptionId}/resourceGroups/${rsGroup}/providers/Microsoft.Network/privateDnsZones/${dnsName}`,
|
|
74
75
|
};
|
|
75
76
|
});
|
|
76
77
|
};
|
|
77
78
|
exports.getAksPrivateDnz = getAksPrivateDnz;
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0Frcy9IZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwRUFBNEQ7QUFDNUQsc0NBQTZEO0FBQzdELG1EQUFvRDtBQUVwRCwrQ0FBK0M7QUFDL0MsMkNBQXFEO0FBQ3JELGlEQUFvRDtBQUVwRCx5Q0FBeUM7QUFDbEMsTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLEVBQ2pDLElBQUksRUFDSixTQUFTLEVBQ1QsYUFBYSxFQUNiLG9CQUFvQixHQU1yQixFQUFtQixFQUFFO0lBQ3BCLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFBLG1CQUFVLEVBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUEsNkJBQW9CLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFMUUsTUFBTSxHQUFHLEdBQUcsb0JBQW9CO1FBQzlCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQztZQUN6QyxZQUFZLEVBQUUsT0FBTztZQUNyQixpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUM7UUFDSixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsa0NBQWtDLENBQUM7WUFDMUMsWUFBWSxFQUFFLE9BQU87WUFDckIsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7SUFFUCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFFLENBQUMsQ0FBQztBQXpCVyxRQUFBLFlBQVksZ0JBeUJ2QjtBQUVGLG1DQUFtQztBQUM1QixNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFBRSxFQUN0QyxJQUFJLEVBQ0osT0FBTyxFQUNQLFNBQVMsRUFDVCxhQUFhLEdBTWQsRUFBbUIsRUFBRTtJQUNwQixNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxrQkFBUyxFQUFDO1FBQ3pCLElBQUksRUFBRSxHQUFHLE9BQU8sU0FBUztRQUN6QixPQUFPO1FBQ1AsU0FBUztRQUNULGFBQWEsRUFBRSxLQUFLO0tBQ3JCLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQyxDQUFDO0FBbkJXLFFBQUEsaUJBQWlCLHFCQW1CNUI7QUFFSyxNQUFNLGdCQUFnQixHQUFHLENBQzlCLE9BQXFCLEVBQ2EsRUFBRTtJQUNwQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7UUFDckMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQzFCLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCO0tBQ25ELENBQUMsQ0FBQztJQUVILE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1FBQ3JCLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLGlCQUFrQixDQUFDO1FBRXJDLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUseUJBQWEsRUFBRTtZQUM5RCxFQUFFLEVBQUUsSUFBQSxvQkFBVyxFQUFBLGtCQUFrQix5QkFBYyxtQkFBbUIsT0FBTyxnREFBZ0QsT0FBTyxFQUFFO1NBQ25ILENBQUM7SUFDcEIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFuQlcsUUFBQSxnQkFBZ0Isb0JBbUIzQiJ9
|
package/Aks/Identity.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const GraphDefinition_1 = require("../AzAd/GraphDefinition");
|
|
7
7
|
const Identity_1 = __importDefault(require("../AzAd/Identity"));
|
|
8
8
|
const RoleAssignment_1 = require("../AzAd/RoleAssignment");
|
|
9
|
-
const
|
|
9
|
+
const Common_1 = require("../Common");
|
|
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
|
|
@@ -28,9 +28,9 @@ exports.default = ({ name, vaultInfo, dependsOn }) => {
|
|
|
28
28
|
principalId: serverIdentity.principalId,
|
|
29
29
|
principalType: 'ServicePrincipal',
|
|
30
30
|
roleName: 'AcrPull',
|
|
31
|
-
scope:
|
|
31
|
+
scope: Common_1.defaultSubScope,
|
|
32
32
|
dependsOn: serverIdentity.resource,
|
|
33
33
|
});
|
|
34
34
|
return serverIdentity;
|
|
35
35
|
};
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSWRlbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL0lkZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkRBQThEO0FBQzlELGdFQUErQztBQUUvQywyREFBd0Q7QUFDeEQsc0NBQTRDO0FBTzVDLDJEQUEyRDtBQUMzRCxrQkFBZSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQVMsRUFBRSxFQUFFO0lBQ3ZELDhDQUE4QztJQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFBLHFDQUFtQixFQUNyQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNwQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO0lBQ3pDLGdEQUFnRDtJQUNoRCxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQzdDLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBRyxJQUFBLGtCQUFlLEVBQUM7UUFDckMsSUFBSTtRQUNKLGtCQUFrQixFQUFFLElBQUk7UUFDeEIsZUFBZSxFQUFFLElBQUk7UUFDckIsd0JBQXdCLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDdkMsWUFBWSxFQUFFLEtBQUs7UUFDbkIsT0FBTyxFQUFFLEtBQUs7UUFDZCxTQUFTO1FBQ1QsU0FBUztLQUNWLENBQUMsQ0FBQztJQUVILElBQUEsK0JBQWMsRUFBQztRQUNiLElBQUksRUFBRSxHQUFHLElBQUksd0JBQXdCO1FBQ3JDLFdBQVcsRUFBRSxjQUFjLENBQUMsV0FBWTtRQUN4QyxhQUFhLEVBQUUsa0JBQWtCO1FBQ2pDLFFBQVEsRUFBRSxTQUFTO1FBQ25CLEtBQUssRUFBRSx3QkFBZTtRQUN0QixTQUFTLEVBQUUsY0FBYyxDQUFDLFFBQVE7S0FDbkMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQyxDQUFDIn0=
|
package/Aks/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as ccs from '@pulumi/azure-native/containerservice';
|
|
2
2
|
import * as pulumi from '@pulumi/pulumi';
|
|
3
3
|
import { Input, Output } from '@pulumi/pulumi';
|
|
4
|
-
import { BasicResourceArgs, KeyVaultInfo,
|
|
4
|
+
import { BasicResourceArgs, KeyVaultInfo, ResourceInfoWithInstance } from '../types';
|
|
5
5
|
import { EnvRolesResults } from '../AzAd/EnvRoles';
|
|
6
6
|
import * as inputs from '@pulumi/azure-native/types/input';
|
|
7
7
|
import { IdentityResult } from '../AzAd/Identity';
|
|
@@ -30,7 +30,7 @@ export declare enum VmSizes {
|
|
|
30
30
|
}
|
|
31
31
|
export interface NodePoolProps extends Partial<inputs.containerservice.ManagedClusterAgentPoolProfileArgs> {
|
|
32
32
|
name: string;
|
|
33
|
-
mode:
|
|
33
|
+
mode: ccs.AgentPoolMode;
|
|
34
34
|
vmSize: VmSizes | string;
|
|
35
35
|
osDiskSizeGB: number;
|
|
36
36
|
maxPods: number;
|
|
@@ -48,7 +48,7 @@ export type AskFeatureProps = {
|
|
|
48
48
|
enableAutoScale?: boolean;
|
|
49
49
|
enablePodIdentity?: boolean;
|
|
50
50
|
enableWorkloadIdentity?: boolean;
|
|
51
|
-
|
|
51
|
+
enableMaintenance?: boolean;
|
|
52
52
|
};
|
|
53
53
|
export type AksAccessProps = {
|
|
54
54
|
envRoles?: EnvRolesResults;
|
|
@@ -58,6 +58,8 @@ export type AksAccessProps = {
|
|
|
58
58
|
export type AksNetworkProps = {
|
|
59
59
|
subnetId: pulumi.Input<string>;
|
|
60
60
|
virtualHostSubnetName?: pulumi.Input<string>;
|
|
61
|
+
/** This is using for Private DNZ linking only*/
|
|
62
|
+
extraVnetIds?: pulumi.Input<string>[];
|
|
61
63
|
outboundIpAddress?: {
|
|
62
64
|
ipAddressId?: pulumi.Input<string>;
|
|
63
65
|
ipAddressPrefixId?: pulumi.Input<string>;
|
|
@@ -66,7 +68,7 @@ export type AksNetworkProps = {
|
|
|
66
68
|
export type AksNodePoolProps = Omit<NodePoolProps, 'subnetId' | 'aksId'>;
|
|
67
69
|
export type DefaultAksNodePoolProps = Omit<AksNodePoolProps, 'name' | 'mode'>;
|
|
68
70
|
export interface AksProps extends BasicResourceArgs {
|
|
69
|
-
tier?:
|
|
71
|
+
tier?: ccs.ManagedClusterSKUTier;
|
|
70
72
|
addon?: AskAddonProps;
|
|
71
73
|
features?: AskFeatureProps;
|
|
72
74
|
aksAccess: AksAccessProps;
|
|
@@ -100,9 +102,8 @@ export interface AksProps extends BasicResourceArgs {
|
|
|
100
102
|
/**Lock resource from delete*/
|
|
101
103
|
lock?: boolean;
|
|
102
104
|
}
|
|
103
|
-
export type AksResults =
|
|
105
|
+
export type AksResults = ResourceInfoWithInstance<ManagedCluster> & {
|
|
104
106
|
serviceIdentity: IdentityResult;
|
|
105
|
-
aks: ManagedCluster;
|
|
106
107
|
disableLocalAccounts?: boolean;
|
|
107
108
|
getKubeConfig: () => Output<string> | undefined;
|
|
108
109
|
};
|
package/Aks/index.js
CHANGED
|
@@ -27,25 +27,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.VmSizes = void 0;
|
|
30
|
-
const
|
|
30
|
+
const ccs = __importStar(require("@pulumi/azure-native/containerservice"));
|
|
31
31
|
const pulumi = __importStar(require("@pulumi/pulumi"));
|
|
32
32
|
const pulumi_1 = require("@pulumi/pulumi");
|
|
33
|
+
const dnsBuilder = __importStar(require("../Builder/PrivateDnsZoneBuilder"));
|
|
33
34
|
const VmSetMonitor_1 = __importDefault(require("./VmSetMonitor"));
|
|
34
|
-
const
|
|
35
|
+
const Common_1 = require("../Common");
|
|
35
36
|
const Locker_1 = __importDefault(require("../Core/Locker"));
|
|
36
37
|
const Identity_1 = __importDefault(require("./Identity"));
|
|
37
|
-
const StackEnv_1 = require("../Common/StackEnv");
|
|
38
38
|
const Helpers_1 = require("../Logs/Helpers");
|
|
39
|
-
const Common_1 = require("../Common");
|
|
40
39
|
const RoleAssignment_1 = require("../AzAd/RoleAssignment");
|
|
41
40
|
const Helper_1 = require("./Helper");
|
|
42
41
|
const CustomHelper_1 = require("../KeyVault/CustomHelper");
|
|
43
|
-
const KeyVaultBase_1 = require("@drunk-pulumi/azure-providers/AzBase/KeyVaultBase");
|
|
42
|
+
const KeyVaultBase_1 = __importDefault(require("@drunk-pulumi/azure-providers/AzBase/KeyVaultBase"));
|
|
44
43
|
const autoScaleFor = ({ enableAutoScaling, nodeType, env, }) => {
|
|
45
44
|
const nodeCount = 1;
|
|
46
45
|
const minCount = 1;
|
|
47
46
|
let maxCount = 3;
|
|
48
|
-
if (env ===
|
|
47
|
+
if (env === Common_1.Environments.Prd) {
|
|
49
48
|
switch (nodeType) {
|
|
50
49
|
case 'User':
|
|
51
50
|
maxCount = 5;
|
|
@@ -65,19 +64,19 @@ const autoScaleFor = ({ enableAutoScaling, nodeType, env, }) => {
|
|
|
65
64
|
};
|
|
66
65
|
};
|
|
67
66
|
const defaultNodePoolProps = {
|
|
68
|
-
availabilityZones:
|
|
69
|
-
type:
|
|
67
|
+
availabilityZones: Common_1.isPrd ? ['1', '2', '3'] : undefined,
|
|
68
|
+
type: ccs.AgentPoolType.VirtualMachineScaleSets,
|
|
70
69
|
vmSize: 'Standard_B2s',
|
|
71
70
|
maxPods: 50,
|
|
72
71
|
enableFIPS: false,
|
|
73
72
|
enableNodePublicIP: false,
|
|
74
73
|
//enableEncryptionAtHost: false,
|
|
75
|
-
enableUltraSSD:
|
|
74
|
+
enableUltraSSD: Common_1.isPrd,
|
|
76
75
|
osDiskSizeGB: 128,
|
|
77
|
-
osDiskType:
|
|
76
|
+
osDiskType: ccs.OSDiskType.Managed,
|
|
78
77
|
nodeLabels: {
|
|
79
|
-
environment:
|
|
80
|
-
stack:
|
|
78
|
+
environment: Common_1.currentEnv,
|
|
79
|
+
stack: Common_1.stack,
|
|
81
80
|
},
|
|
82
81
|
};
|
|
83
82
|
var VmSizes;
|
|
@@ -104,16 +103,15 @@ var VmSizes;
|
|
|
104
103
|
VmSizes["Standard_A4m_v2"] = "Standard_A4m_v2";
|
|
105
104
|
})(VmSizes || (exports.VmSizes = VmSizes = {}));
|
|
106
105
|
//Using this to enable the preview feature https://azurecloudai.blog/2019/10/16/aks-enabling-and-using-preview-features-such-as-nodepools-using-cli/
|
|
107
|
-
exports.default = async ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features = {
|
|
106
|
+
exports.default = async ({ group, name, linux, defaultNodePool, nodePools, network, logWpId, acr, aksAccess, vaultInfo, features = { enableMaintenance: true }, storageProfile, addon = {
|
|
108
107
|
enableAzureKeyVault: false,
|
|
109
|
-
}, tier =
|
|
108
|
+
}, tier = ccs.ManagedClusterSKUTier.Free, lock = true, dependsOn = [], importUri, ignoreChanges = [], }) => {
|
|
110
109
|
const aksName = (0, Common_1.getAksName)(name);
|
|
111
110
|
const secretName = `${aksName}-config`;
|
|
112
|
-
const acrScope = acr?.enable ? acr.id ?? AzureEnv_1.defaultScope : undefined;
|
|
113
111
|
const nodeResourceGroup = (0, Common_1.getResourceGroupName)(`${aksName}-nodes`);
|
|
114
112
|
//Auto detect and disable Local Account
|
|
115
113
|
if (aksAccess.disableLocalAccounts === undefined && vaultInfo) {
|
|
116
|
-
aksAccess.disableLocalAccounts = await (0, KeyVaultBase_1.
|
|
114
|
+
aksAccess.disableLocalAccounts = await (0, KeyVaultBase_1.default)(vaultInfo.name)
|
|
117
115
|
.checkSecretExist(secretName)
|
|
118
116
|
.catch(() => false);
|
|
119
117
|
}
|
|
@@ -124,8 +122,14 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
124
122
|
vaultInfo,
|
|
125
123
|
dependsOn,
|
|
126
124
|
});
|
|
125
|
+
// const privateDnsZone = features?.enablePrivateCluster
|
|
126
|
+
// ? PrivateDnsZoneBuilder({
|
|
127
|
+
// name: `${aksName}.privatelink.${currentRegionCode}.azmk8s.io`,
|
|
128
|
+
// group,
|
|
129
|
+
// }).build()
|
|
130
|
+
// : undefined;
|
|
127
131
|
//Create AKS Cluster
|
|
128
|
-
const aks = new
|
|
132
|
+
const aks = new ccs.ManagedCluster(aksName, {
|
|
129
133
|
resourceName: aksName,
|
|
130
134
|
...group,
|
|
131
135
|
nodeResourceGroup,
|
|
@@ -136,8 +140,9 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
136
140
|
: aksAccess.authorizedIPRanges || [],
|
|
137
141
|
disableRunCommand: true,
|
|
138
142
|
enablePrivateCluster: features?.enablePrivateCluster,
|
|
139
|
-
enablePrivateClusterPublicFQDN:
|
|
143
|
+
enablePrivateClusterPublicFQDN: false,
|
|
140
144
|
privateDNSZone: features?.enablePrivateCluster ? 'system' : undefined,
|
|
145
|
+
//privateDNSZone: privateDnsZone?.id,
|
|
141
146
|
},
|
|
142
147
|
addonProfiles: {
|
|
143
148
|
azureKeyvaultSecretsProvider: {
|
|
@@ -176,16 +181,16 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
176
181
|
},
|
|
177
182
|
},
|
|
178
183
|
sku: {
|
|
179
|
-
name:
|
|
184
|
+
name: ccs.ManagedClusterSKUName.Base,
|
|
180
185
|
tier,
|
|
181
186
|
},
|
|
182
|
-
supportPlan:
|
|
187
|
+
supportPlan: ccs.KubernetesSupportPlan.KubernetesOfficial,
|
|
183
188
|
agentPoolProfiles: [
|
|
184
189
|
{
|
|
185
190
|
...defaultNodePoolProps,
|
|
186
191
|
...defaultNodePool,
|
|
187
192
|
...autoScaleFor({
|
|
188
|
-
env:
|
|
193
|
+
env: Common_1.currentEnv,
|
|
189
194
|
nodeType: 'System',
|
|
190
195
|
enableAutoScaling: features?.enableAutoScale,
|
|
191
196
|
}),
|
|
@@ -242,7 +247,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
242
247
|
},
|
|
243
248
|
oidcIssuerProfile: { enabled: Boolean(features?.enableWorkloadIdentity) },
|
|
244
249
|
securityProfile: {
|
|
245
|
-
defender: logWpId &&
|
|
250
|
+
defender: logWpId && Common_1.isPrd
|
|
246
251
|
? {
|
|
247
252
|
logAnalyticsWorkspaceResourceId: logWpId,
|
|
248
253
|
securityMonitoring: { enabled: true },
|
|
@@ -261,10 +266,10 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
261
266
|
}
|
|
262
267
|
: undefined,
|
|
263
268
|
identity: {
|
|
264
|
-
type:
|
|
269
|
+
type: ccs.ResourceIdentityType.SystemAssigned,
|
|
265
270
|
},
|
|
266
271
|
autoUpgradeProfile: {
|
|
267
|
-
upgradeChannel:
|
|
272
|
+
upgradeChannel: ccs.UpgradeChannel.Patch,
|
|
268
273
|
//nodeOSUpgradeChannel: "NodeImage",
|
|
269
274
|
},
|
|
270
275
|
disableLocalAccounts: Boolean(aksAccess.disableLocalAccounts),
|
|
@@ -274,20 +279,20 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
274
279
|
enableAzureRBAC: true,
|
|
275
280
|
managed: true,
|
|
276
281
|
adminGroupObjectIDs: [aksAccess.envRoles.admin.objectId],
|
|
277
|
-
tenantID:
|
|
282
|
+
tenantID: Common_1.tenantId,
|
|
278
283
|
}
|
|
279
284
|
: undefined,
|
|
280
285
|
storageProfile,
|
|
281
286
|
networkProfile: {
|
|
282
|
-
networkMode:
|
|
283
|
-
networkPolicy:
|
|
284
|
-
networkPlugin:
|
|
287
|
+
networkMode: ccs.NetworkMode.Transparent,
|
|
288
|
+
networkPolicy: ccs.NetworkPolicy.Azure,
|
|
289
|
+
networkPlugin: ccs.NetworkPlugin.Azure,
|
|
285
290
|
//dnsServiceIP: '10.0.0.10',
|
|
286
291
|
//dockerBridgeCidr: '172.17.0.1/16',
|
|
287
292
|
//serviceCidr: '10.0.0.0/16',
|
|
288
293
|
outboundType: features?.enablePrivateCluster || !network.outboundIpAddress
|
|
289
|
-
?
|
|
290
|
-
:
|
|
294
|
+
? ccs.OutboundType.UserDefinedRouting
|
|
295
|
+
: ccs.OutboundType.LoadBalancer,
|
|
291
296
|
loadBalancerSku: 'Standard',
|
|
292
297
|
loadBalancerProfile: network.outboundIpAddress
|
|
293
298
|
? {
|
|
@@ -315,32 +320,29 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
315
320
|
if (lock) {
|
|
316
321
|
(0, Locker_1.default)({ name: aksName, resource: aks });
|
|
317
322
|
}
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
},
|
|
333
|
-
],
|
|
334
|
-
}, { dependsOn: aks });
|
|
323
|
+
if (features?.enableMaintenance) {
|
|
324
|
+
//Default
|
|
325
|
+
new ccs.MaintenanceConfiguration(`${aksName}-MaintenanceConfiguration`, {
|
|
326
|
+
configName: 'default',
|
|
327
|
+
...group,
|
|
328
|
+
resourceName: aks.name,
|
|
329
|
+
timeInWeek: [
|
|
330
|
+
{
|
|
331
|
+
day: ccs.WeekDay.Sunday,
|
|
332
|
+
hourSlots: [0, 23],
|
|
333
|
+
},
|
|
334
|
+
],
|
|
335
|
+
}, { dependsOn: aks, deleteBeforeReplace: true });
|
|
336
|
+
}
|
|
335
337
|
if (nodePools) {
|
|
336
|
-
nodePools.map((p) => new
|
|
338
|
+
nodePools.map((p) => new ccs.AgentPool(`${name}-${p.name}`, {
|
|
337
339
|
//agentPoolName:p.name,
|
|
338
340
|
resourceName: aks.name,
|
|
339
341
|
...group,
|
|
340
342
|
...defaultNodePoolProps,
|
|
341
343
|
...p,
|
|
342
344
|
...autoScaleFor({
|
|
343
|
-
env:
|
|
345
|
+
env: Common_1.currentEnv,
|
|
344
346
|
nodeType: p.mode,
|
|
345
347
|
enableAutoScaling: features.enableAutoScale,
|
|
346
348
|
}),
|
|
@@ -360,7 +362,8 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
360
362
|
pulumi
|
|
361
363
|
.all([aks.identity, aks.identityProfile, network.subnetId])
|
|
362
364
|
.apply(([identity, identityProfile, sId]) => {
|
|
363
|
-
|
|
365
|
+
const acrScope = acr?.id ?? Common_1.defaultSubScope;
|
|
366
|
+
if (identityProfile && identityProfile['kubeletidentity']) {
|
|
364
367
|
(0, RoleAssignment_1.roleAssignment)({
|
|
365
368
|
name: `${name}-aks-identity-profile-pull`,
|
|
366
369
|
principalId: identityProfile['kubeletidentity'].objectId,
|
|
@@ -378,17 +381,30 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
378
381
|
});
|
|
379
382
|
}
|
|
380
383
|
}
|
|
384
|
+
//Link service principal to Vnet Resources group
|
|
381
385
|
if (network.subnetId && identity) {
|
|
382
386
|
(0, RoleAssignment_1.roleAssignment)({
|
|
383
387
|
name: `${name}-system-net`,
|
|
384
388
|
principalId: identity.principalId,
|
|
385
389
|
roleName: 'Contributor',
|
|
386
390
|
principalType: 'ServicePrincipal',
|
|
387
|
-
scope: (0,
|
|
388
|
-
group: (0,
|
|
391
|
+
scope: (0, Common_1.getResourceIdFromInfo)({
|
|
392
|
+
group: (0, Common_1.parseResourceInfoFromId)(sId).group,
|
|
389
393
|
}),
|
|
390
394
|
});
|
|
391
395
|
}
|
|
396
|
+
//Link Private Dns to extra Vnet
|
|
397
|
+
if (features?.enablePrivateCluster && network.extraVnetIds) {
|
|
398
|
+
const dns = (0, Helper_1.getAksPrivateDnz)({
|
|
399
|
+
name: aksName,
|
|
400
|
+
group,
|
|
401
|
+
id: aks.id,
|
|
402
|
+
});
|
|
403
|
+
dns.apply((s) => dnsBuilder
|
|
404
|
+
.from(s)
|
|
405
|
+
.linkTo({ vnetIds: network.extraVnetIds })
|
|
406
|
+
.build());
|
|
407
|
+
}
|
|
392
408
|
});
|
|
393
409
|
//Update Vault
|
|
394
410
|
const config = await (0, Helper_1.getAksConfig)({
|
|
@@ -410,7 +426,7 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
410
426
|
});
|
|
411
427
|
}
|
|
412
428
|
//Diagnostic
|
|
413
|
-
if (
|
|
429
|
+
if (logWpId) {
|
|
414
430
|
(0, Helpers_1.createDiagnostic)({
|
|
415
431
|
name,
|
|
416
432
|
targetResourceId: id,
|
|
@@ -437,16 +453,16 @@ exports.default = async ({ group, name, linux, defaultNodePool, nodePools, netwo
|
|
|
437
453
|
}
|
|
438
454
|
});
|
|
439
455
|
return {
|
|
440
|
-
name,
|
|
456
|
+
name: aksName,
|
|
441
457
|
group,
|
|
442
458
|
id: aks.id,
|
|
443
|
-
aks,
|
|
459
|
+
instance: aks,
|
|
444
460
|
serviceIdentity,
|
|
445
461
|
getKubeConfig: () => vaultInfo
|
|
446
|
-
? (0, pulumi_1.output)((0, KeyVaultBase_1.
|
|
462
|
+
? (0, pulumi_1.output)((0, KeyVaultBase_1.default)(vaultInfo.name)
|
|
447
463
|
.getSecret(secretName)
|
|
448
464
|
.then((s) => s.value))
|
|
449
465
|
: undefined,
|
|
450
466
|
};
|
|
451
467
|
};
|
|
452
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkRBQStDO0FBQy9DLHVEQUF5QztBQUN6QywyQ0FBdUQ7QUFDdkQsa0VBQTJDO0FBRTNDLGlEQVE0QjtBQUM1Qiw0REFBb0M7QUFDcEMsMERBQTRDO0FBQzVDLGlEQUEyQztBQUMzQyw2Q0FBbUQ7QUFDbkQsc0NBQTZEO0FBQzdELDJEQUF3RDtBQUV4RCxxQ0FBd0M7QUFDeEMsMkRBQTJEO0FBRTNELG9GQUFvRjtBQUlwRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQ3BCLGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsR0FBRyxHQUtKLEVBQUUsRUFBRTtJQUNILE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBQztJQUNwQixNQUFNLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDbkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0lBRWpCLElBQUksR0FBRyxLQUFLLHVCQUFZLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0IsUUFBUSxRQUFRLEVBQUUsQ0FBQztZQUNqQixLQUFLLE1BQU07Z0JBQ1QsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1lBRVIsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLFFBQVEsR0FBRyxDQUFDLENBQUM7Z0JBQ2IsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTztRQUNMLGlCQUFpQjtRQUNqQixTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNwRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUNsRCxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFFB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
|
|
468
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQWtzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkVBQTZEO0FBQzdELHVEQUF5QztBQUN6QywyQ0FBdUQ7QUFDdkQsNkVBQStEO0FBQy9ELGtFQUEyQztBQU0zQyxzQ0FXbUI7QUFDbkIsNERBQW9DO0FBQ3BDLDBEQUE0QztBQUM1Qyw2Q0FBbUQ7QUFDbkQsMkRBQXdEO0FBRXhELHFDQUEwRDtBQUMxRCwyREFBMkQ7QUFFM0QscUdBQWdGO0FBSWhGLE1BQU0sWUFBWSxHQUFHLENBQUMsRUFDcEIsaUJBQWlCLEVBQ2pCLFFBQVEsRUFDUixHQUFHLEdBS0osRUFBRSxFQUFFO0lBQ0gsTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNuQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFFakIsSUFBSSxHQUFHLEtBQUsscUJBQVksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM3QixRQUFRLFFBQVEsRUFBRSxDQUFDO1lBQ2pCLEtBQUssTUFBTTtnQkFDVCxRQUFRLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLE1BQU07WUFFUixLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssUUFBUSxDQUFDO1lBQ2Q7Z0JBQ0UsUUFBUSxHQUFHLENBQUMsQ0FBQztnQkFDYixNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsaUJBQWlCO1FBQ2pCLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ3BELFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQ2xELFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTO0tBQ25ELENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLG9CQUFvQixHQUFHO0lBQzNCLGlCQUFpQixFQUFFLGNBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO0lBQ3RELElBQUksRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLHVCQUF1QjtJQUMvQyxNQUFNLEVBQUUsY0FBYztJQUV0QixPQUFPLEVBQUUsRUFBRTtJQUNYLFVBQVUsRUFBRSxLQUFLO0lBQ2pCLGtCQUFrQixFQUFFLEtBQUs7SUFDekIsZ0NBQWdDO0lBRWhDLGNBQWMsRUFBRSxjQUFLO0lBQ3JCLFlBQVksRUFBRSxHQUFHO0lBQ2pCLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU87SUFFbEMsVUFBVSxFQUFFO1FBQ1YsV0FBVyxFQUFFLG1CQUFVO1FBQ3ZCLEtBQUssRUFBTCxjQUFLO0tBQ047Q0FDRixDQUFDO0FBRUYsSUFBWSxPQXFCWDtBQXJCRCxXQUFZLE9BQU87SUFDakIsK0JBQStCO0lBQy9CLGdEQUFxQyxDQUFBO0lBQ3JDLDZCQUE2QjtJQUM3QiwwQ0FBK0IsQ0FBQTtJQUMvQiwrQkFBK0I7SUFDL0IsMENBQStCLENBQUE7SUFDL0IsNEJBQTRCO0lBQzVCLGdEQUFxQyxDQUFBO0lBQ3JDLDRCQUE0QjtJQUM1Qiw4Q0FBbUMsQ0FBQTtJQUNuQyw0QkFBNEI7SUFDNUIsOENBQW1DLENBQUE7SUFDbkMsK0JBQStCO0lBQy9CLGdEQUFxQyxDQUFBO0lBQ3JDLDZCQUE2QjtJQUM3Qiw0Q0FBaUMsQ0FBQTtJQUNqQyw4QkFBOEI7SUFDOUIsNENBQWlDLENBQUE7SUFDakMsK0JBQStCO0lBQy9CLDhDQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFyQlcsT0FBTyx1QkFBUCxPQUFPLFFBcUJsQjtBQXlGRCxvSkFBb0o7QUFDcEosa0JBQWUsS0FBSyxFQUFFLEVBQ3BCLEtBQUssRUFDTCxJQUFJLEVBQ0osS0FBSyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsT0FBTyxFQUNQLE9BQU8sRUFDUCxHQUFHLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFDVCxRQUFRLEdBQUcsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsRUFDdEMsY0FBYyxFQUNkLEtBQUssR0FBRztJQUNOLG1CQUFtQixFQUFFLEtBQUs7Q0FDM0IsRUFDRCxJQUFJLEdBQUcsR0FBRyxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFDckMsSUFBSSxHQUFHLElBQUksRUFDWCxTQUFTLEdBQUcsRUFBRSxFQUNkLFNBQVMsRUFDVCxhQUFhLEdBQUcsRUFBRSxHQUNULEVBQXVCLEVBQUU7SUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBQSxtQkFBVSxFQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLE1BQU0sVUFBVSxHQUFHLEdBQUcsT0FBTyxTQUFTLENBQUM7SUFDdkMsTUFBTSxpQkFBaUIsR0FBRyxJQUFBLDZCQUFvQixFQUFDLEdBQUcsT0FBTyxRQUFRLENBQUMsQ0FBQztJQUVuRSx1Q0FBdUM7SUFDdkMsSUFBSSxTQUFTLENBQUMsb0JBQW9CLEtBQUssU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQzlELFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxNQUFNLElBQUEsc0JBQWUsRUFBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2FBQ25FLGdCQUFnQixDQUFDLFVBQVUsQ0FBQzthQUM1QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxhQUFhLENBQUMsSUFBSSxDQUNoQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixjQUFjLEVBQ2QsZ0JBQWdCLENBQ2pCLENBQUM7SUFFRixNQUFNLGVBQWUsR0FBRyxJQUFBLGtCQUFrQixFQUFDO1FBQ3pDLElBQUksRUFBRSxPQUFPO1FBQ2IsU0FBUztRQUNULFNBQVM7S0FDVixDQUFDLENBQUM7SUFFSCx3REFBd0Q7SUFDeEQsOEJBQThCO0lBQzlCLHVFQUF1RTtJQUN2RSxlQUFlO0lBQ2YsaUJBQWlCO0lBQ2pCLGlCQUFpQjtJQUVqQixvQkFBb0I7SUFDcEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsY0FBYyxDQUNoQyxPQUFPLEVBQ1A7UUFDRSxZQUFZLEVBQUUsT0FBTztRQUNyQixHQUFHLEtBQUs7UUFDUixpQkFBaUI7UUFDakIsU0FBUyxFQUFFLE9BQU87UUFFbEIsc0JBQXNCLEVBQUU7WUFDdEIsa0JBQWtCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQjtnQkFDaEQsQ0FBQyxDQUFDLFNBQVM7Z0JBQ1gsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsSUFBSSxFQUFFO1lBQ3RDLGlCQUFpQixFQUFFLElBQUk7WUFDdkIsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQjtZQUNwRCw4QkFBOEIsRUFBRSxLQUFLO1lBQ3JDLGNBQWMsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNyRSxxQ0FBcUM7U0FDdEM7UUFFRCxhQUFhLEVBQUU7WUFDYiw0QkFBNEIsRUFBRTtnQkFDNUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxtQkFBbUI7b0JBQy9CLENBQUMsQ0FBQzt3QkFDRSxvQkFBb0IsRUFBRSxNQUFNO3FCQUM3QjtvQkFDSCxDQUFDLENBQUMsU0FBUztnQkFDYixPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQzthQUM1QztZQUVELFdBQVcsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7WUFDOUIsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtZQUNqQyxzQkFBc0IsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUU7WUFFMUMsaUJBQWlCLEVBQUU7Z0JBQ2pCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDO2dCQUMvQyxNQUFNLEVBQUUsT0FBTyxDQUFDLHFCQUFxQjtvQkFDbkMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtvQkFDL0MsQ0FBQyxDQUFDLFNBQVM7YUFDZDtZQUVELHlCQUF5QixFQUFFO2dCQUN6QixPQUFPLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztnQkFDMUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxrQkFBa0I7b0JBQzlCLENBQUMsQ0FBQzt3QkFDRSxXQUFXLEVBQUUsR0FBRyxJQUFJLFVBQVU7d0JBQzlCLFFBQVEsRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsZUFBZTtxQkFDbkQ7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtZQUVELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDekIsTUFBTSxFQUFFLE9BQU87b0JBQ2IsQ0FBQyxDQUFDO3dCQUNFLCtCQUErQixFQUFFLE9BQU87cUJBQ3pDO29CQUNILENBQUMsQ0FBQyxTQUFTO2FBQ2Q7U0FDRjtRQUVELEdBQUcsRUFBRTtZQUNILElBQUksRUFBRSxHQUFHLENBQUMscUJBQXFCLENBQUMsSUFBSTtZQUNwQyxJQUFJO1NBQ0w7UUFDRCxXQUFXLEVBQUUsR0FBRyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQjtRQUN6RCxpQkFBaUIsRUFBRTtZQUNqQjtnQkFDRSxHQUFHLG9CQUFvQjtnQkFDdkIsR0FBRyxlQUFlO2dCQUNsQixHQUFHLFlBQVksQ0FBQztvQkFDZCxHQUFHLEVBQUUsbUJBQVU7b0JBQ2YsUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLGlCQUFpQixFQUFFLFFBQVEsRUFBRSxlQUFlO2lCQUM3QyxDQUFDO2dCQUVGLElBQUksRUFBRSxjQUFjO2dCQUNwQixJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsQ0FBQztnQkFDUixZQUFZLEVBQUUsT0FBTyxDQUFDLFFBQVE7Z0JBQzlCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixLQUFLLEVBQUUsUUFBUTtnQkFDZixNQUFNLEVBQUUsT0FBTzthQUNoQjtTQUNGO1FBQ0QsWUFBWSxFQUFFLEtBQUs7WUFDakIsQ0FBQyxDQUFDO2dCQUNFLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDbEMsR0FBRyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTthQUNoRTtZQUNILENBQUMsQ0FBQyxTQUFTO1FBQ2IsbUJBQW1CO1FBQ25CLGNBQWMsRUFBRSxTQUFTO1FBQ3pCLG9CQUFvQjtRQUNwQixnQ0FBZ0M7UUFDaEMsMEJBQTBCO1FBQzFCLEtBQUs7UUFDTCxpQkFBaUIsRUFBRTtZQUNqQix3QkFBd0IsRUFBRSxNQUFNO1lBQ2hDLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHlCQUF5QixFQUFFLElBQUk7WUFDL0Isa0JBQWtCLEVBQUUsSUFBSTtZQUN4QixtQkFBbUIsRUFBRSxHQUFHO1lBQ3hCLHNCQUFzQixFQUFFLEtBQUs7WUFDN0IseUJBQXlCLEVBQUUsS0FBSztZQUNoQywwQkFBMEIsRUFBRSxLQUFLO1lBQ2pDLHFCQUFxQixFQUFFLEtBQUs7WUFDNUIsb0JBQW9CLEVBQUUsS0FBSztZQUMzQiw2QkFBNkIsRUFBRSxLQUFLO1lBQ3BDLFlBQVksRUFBRSxLQUFLO1lBQ25CLHlCQUF5QixFQUFFLE9BQU87WUFDbEMsdUJBQXVCLEVBQUUsTUFBTTtTQUNoQztRQUNELHFCQUFxQjtRQUNyQiw2Q0FBNkM7UUFDN0Msa0NBQWtDO1FBQ2xDLGlCQUFpQjtRQUNqQixnREFBZ0Q7UUFDaEQseUZBQXlGO1FBQ3pGLGdDQUFnQztRQUVoQyx1QkFBdUIsRUFBRTtZQUN2QixRQUFRLEVBQUUsZUFBZSxDQUFDLFFBQVE7WUFDbEMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxZQUFZO1NBQ3JDO1FBQ0QsaUJBQWlCLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFO1FBQ3pFLGVBQWUsRUFBRTtZQUNmLFFBQVEsRUFDTixPQUFPLElBQUksY0FBSztnQkFDZCxDQUFDLENBQUM7b0JBQ0UsK0JBQStCLEVBQUUsT0FBTztvQkFDeEMsa0JBQWtCLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO2lCQUN0QztnQkFDSCxDQUFDLENBQUMsU0FBUztZQUNmLFlBQVksRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtZQUNsRCxnQkFBZ0IsRUFBRTtnQkFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUM7YUFDbkQ7U0FDRjtRQUNELGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxpQkFBaUI7WUFDNUMsQ0FBQyxDQUFDO2dCQUNFLE9BQU8sRUFBRSxRQUFRLENBQUMsaUJBQWlCO2dCQUNuQyxxQ0FBcUM7Z0JBQ3JDLHlCQUF5QixFQUFFLEtBQUs7YUFDakM7WUFDSCxDQUFDLENBQUMsU0FBUztRQUNiLFFBQVEsRUFBRTtZQUNSLElBQUksRUFBRSxHQUFHLENBQUMsb0JBQW9CLENBQUMsY0FBYztTQUM5QztRQUNELGtCQUFrQixFQUFFO1lBQ2xCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLEtBQUs7WUFDeEMsb0NBQW9DO1NBQ3JDO1FBQ0Qsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQztRQUM3RCxVQUFVLEVBQUUsSUFBSTtRQUNoQixVQUFVLEVBQUUsU0FBUyxDQUFDLFFBQVE7WUFDNUIsQ0FBQyxDQUFDO2dCQUNFLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixPQUFPLEVBQUUsSUFBSTtnQkFDYixtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztnQkFDeEQsUUFBUSxFQUFFLGlCQUFRO2FBQ25CO1lBQ0gsQ0FBQyxDQUFDLFNBQVM7UUFDYixjQUFjO1FBQ2QsY0FBYyxFQUFFO1lBQ2QsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsV0FBVztZQUN4QyxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLO1lBQ3RDLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUs7WUFFdEMsNEJBQTRCO1lBQzVCLG9DQUFvQztZQUNwQyw2QkFBNkI7WUFFN0IsWUFBWSxFQUNWLFFBQVEsRUFBRSxvQkFBb0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUI7Z0JBQzFELENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLGtCQUFrQjtnQkFDckMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsWUFBWTtZQUVuQyxlQUFlLEVBQUUsVUFBVTtZQUMzQixtQkFBbUIsRUFBRSxPQUFPLENBQUMsaUJBQWlCO2dCQUM1QyxDQUFDLENBQUM7b0JBQ0UsV0FBVyxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXO3dCQUNoRCxDQUFDLENBQUM7NEJBQ0UsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO3lCQUMzRDt3QkFDSCxDQUFDLENBQUMsU0FBUztvQkFDYixrQkFBa0IsRUFBRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCO3dCQUM3RCxDQUFDLENBQUM7NEJBQ0UsZ0JBQWdCLEVBQUU7Z0NBQ2hCLEVBQUUsRUFBRSxFQUFFLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsRUFBRTs2QkFDcEQ7eUJBQ0Y7d0JBQ0gsQ0FBQyxDQUFDLFNBQVM7aUJBQ2Q7Z0JBQ0gsQ0FBQyxDQUFDLFNBQVM7U0FDZDtLQUNGLEVBQ0Q7UUFDRSxTQUFTLEVBQUUsZUFBZSxDQUFDLFFBQVE7UUFDbkMsTUFBTSxFQUFFLFNBQVM7UUFDakIsbUJBQW1CLEVBQUUsSUFBSTtRQUN6QixhQUFhO0tBQ2QsQ0FDRixDQUFDO0lBQ0YsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULElBQUEsZ0JBQU0sRUFBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQUksUUFBUSxFQUFFLGlCQUFpQixFQUFFLENBQUM7UUFDaEMsU0FBUztRQUNULElBQUksR0FBRyxDQUFDLHdCQUF3QixDQUM5QixHQUFHLE9BQU8sMkJBQTJCLEVBQ3JDO1lBQ0UsVUFBVSxFQUFFLFNBQVM7WUFDckIsR0FBRyxLQUFLO1lBQ1IsWUFBWSxFQUFFLEdBQUcsQ0FBQyxJQUFJO1lBQ3RCLFVBQVUsRUFBRTtnQkFDVjtvQkFDRSxHQUFHLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNO29CQUN2QixTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO2lCQUNuQjthQUNGO1NBQ0YsRUFDRCxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxFQUFFLENBQzlDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNkLFNBQVMsQ0FBQyxHQUFHLENBQ1gsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNKLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckMsdUJBQXVCO1lBQ3ZCLFlBQVksRUFBRSxHQUFHLENBQUMsSUFBSTtZQUN0QixHQUFHLEtBQUs7WUFDUixHQUFHLG9CQUFvQjtZQUN2QixHQUFHLENBQUM7WUFFSixHQUFHLFlBQVksQ0FBQztnQkFDZCxHQUFHLEVBQUUsbUJBQVU7Z0JBQ2YsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNoQixpQkFBaUIsRUFBRSxRQUFRLENBQUMsZUFBZTthQUM1QyxDQUFDO1lBRUYsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbEMseUNBQXlDO1lBQ3pDLFlBQVksRUFBRSxPQUFPLENBQUMsUUFBUTtZQUM5QixlQUFlLEVBQUUsSUFBSTtZQUNyQixLQUFLLEVBQUUsUUFBUTtZQUNmLE1BQU0sRUFBRSxPQUFPO1NBQ2hCLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELDRCQUE0QjtJQUM1QixHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPO1FBRWhCLCtCQUErQjtRQUMvQixNQUFNO2FBQ0gsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUMxRCxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUMxQyxNQUFNLFFBQVEsR0FBRyxHQUFHLEVBQUUsRUFBRSxJQUFJLHdCQUFlLENBQUM7WUFDNUMsSUFBSSxlQUFlLElBQUksZUFBZSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztnQkFDMUQsSUFBQSwrQkFBYyxFQUFDO29CQUNiLElBQUksRUFBRSxHQUFHLElBQUksNEJBQTRCO29CQUN6QyxXQUFXLEVBQUUsZUFBZSxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUztvQkFDekQsYUFBYSxFQUFFLGtCQUFrQjtvQkFDakMsUUFBUSxFQUFFLFNBQVM7b0JBQ25CLEtBQUssRUFBRSxRQUFRO2lCQUNoQixDQUFDLENBQUM7Z0JBRUgsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDZCxJQUFBLDhCQUFlLEVBQUM7d0JBQ2QsSUFBSSxFQUFFLEdBQUcsSUFBSSxvQkFBb0I7d0JBQ2pDLEtBQUssRUFBRSxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFTO3dCQUNuRCxTQUFTLEVBQUUsR0FBRzt3QkFDZCxXQUFXLEVBQUUsSUFBSTt3QkFDakIsU0FBUztxQkFDVixDQUFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNILENBQUM7WUFFRCxnREFBZ0Q7WUFDaEQsSUFBSSxPQUFPLENBQUMsUUFBUSxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNqQyxJQUFBLCtCQUFjLEVBQUM7b0JBQ2IsSUFBSSxFQUFFLEdBQUcsSUFBSSxhQUFhO29CQUMxQixXQUFXLEVBQUUsUUFBUSxDQUFDLFdBQVc7b0JBQ2pDLFFBQVEsRUFBRSxhQUFhO29CQUN2QixhQUFhLEVBQUUsa0JBQWtCO29CQUNqQyxLQUFLLEVBQUUsSUFBQSw4QkFBcUIsRUFBQzt3QkFDM0IsS0FBSyxFQUFFLElBQUEsZ0NBQXVCLEVBQUMsR0FBRyxDQUFFLENBQUMsS0FBSztxQkFDM0MsQ0FBQztpQkFDSCxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsZ0NBQWdDO1lBQ2hDLElBQUksUUFBUSxFQUFFLG9CQUFvQixJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDM0QsTUFBTSxHQUFHLEdBQUcsSUFBQSx5QkFBZ0IsRUFBQztvQkFDM0IsSUFBSSxFQUFFLE9BQU87b0JBQ2IsS0FBSztvQkFDTCxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7aUJBQ1gsQ0FBQyxDQUFDO2dCQUVILEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUNkLFVBQVU7cUJBQ1AsSUFBSSxDQUFDLENBQUUsQ0FBQztxQkFDUixNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO3FCQUN6QyxLQUFLLEVBQUUsQ0FDWCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUwsY0FBYztRQUNkLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSxxQkFBWSxFQUFDO1lBQ2hDLElBQUksRUFBRSxPQUFPO1lBQ2IsU0FBUyxFQUFFLEtBQUssQ0FBQyxpQkFBaUI7WUFDbEMsYUFBYSxFQUFFLElBQUk7WUFDbkIsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLG9CQUFvQjtTQUNyRCxDQUFDLENBQUM7UUFFSCxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQ2QsSUFBQSw4QkFBZSxFQUFDO2dCQUNkLElBQUksRUFBRSxVQUFVO2dCQUNoQixLQUFLLEVBQUUsTUFBTTtnQkFDYixhQUFhLEVBQUUsSUFBSTtnQkFDbkIsU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsV0FBVyxFQUFFLFNBQVMsQ0FBQyxvQkFBb0I7b0JBQ3pDLENBQUMsQ0FBQyxHQUFHLElBQUksa0JBQWtCO29CQUMzQixDQUFDLENBQUMsR0FBRyxJQUFJLG1CQUFtQjtnQkFDOUIsU0FBUzthQUNWLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxZQUFZO1FBQ1osSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLElBQUEsMEJBQWdCLEVBQUM7Z0JBQ2YsSUFBSTtnQkFDSixnQkFBZ0IsRUFBRSxFQUFFO2dCQUNwQixPQUFPO2dCQUNQLGNBQWMsRUFBRTtvQkFDZCxPQUFPO29CQUNQLHlCQUF5QjtvQkFDekIsa0JBQWtCO29CQUNsQixZQUFZO29CQUNaLGdCQUFnQjtvQkFDaEIsb0JBQW9CO2lCQUNyQjtnQkFDRCxTQUFTLEVBQUUsR0FBRzthQUNmLENBQUMsQ0FBQztZQUVILElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2QsbUNBQW1DO2dCQUNuQyxJQUFBLHNCQUFhLEVBQUM7b0JBQ1osS0FBSyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUU7b0JBQy9DLE9BQU87b0JBQ1AsU0FBUztvQkFDVCxTQUFTLEVBQUUsR0FBRztpQkFDZixDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsS0FBSztRQUNMLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNWLFFBQVEsRUFBRSxHQUFHO1FBQ2IsZUFBZTtRQUNmLGFBQWEsRUFBRSxHQUErQixFQUFFLENBQzlDLFNBQVM7WUFDUCxDQUFDLENBQUMsSUFBQSxlQUFNLEVBQ0osSUFBQSxzQkFBZSxFQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7aUJBQzVCLFNBQVMsQ0FBQyxVQUFVLENBQUM7aUJBQ3JCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBRSxDQUFDLEtBQU0sQ0FBQyxDQUMxQjtZQUNILENBQUMsQ0FBQyxTQUFTO0tBQ2hCLENBQUM7QUFDSixDQUFDLENBQUMifQ==
|
package/Automation/index.d.ts
CHANGED
package/Automation/index.js
CHANGED
|
@@ -30,14 +30,14 @@ const automation = __importStar(require("@pulumi/azure-native/automation"));
|
|
|
30
30
|
const Common_1 = require("../Common");
|
|
31
31
|
const Helper_1 = require("../KeyVault/Helper");
|
|
32
32
|
const UserAssignedIdentity_1 = __importDefault(require("../AzAd/UserAssignedIdentity"));
|
|
33
|
-
const
|
|
33
|
+
const Common_2 = require("../Common");
|
|
34
34
|
const Helper_2 = require("../AzAd/Helper");
|
|
35
35
|
exports.default = ({ name, group, enableEncryption, vaultInfo, dependsOn, ignoreChanges, }) => {
|
|
36
36
|
name = (0, Common_1.getAutomationAccountName)(name);
|
|
37
37
|
const encryption = enableEncryption && vaultInfo
|
|
38
38
|
? (0, Helper_1.getEncryptionKeyOutput)(name, vaultInfo)
|
|
39
39
|
: undefined;
|
|
40
|
-
const roles = [{ name:
|
|
40
|
+
const roles = [{ name: 'Contributor', scope: Common_2.defaultSubScope }];
|
|
41
41
|
const identity = (0, UserAssignedIdentity_1.default)({
|
|
42
42
|
name,
|
|
43
43
|
group,
|
|
@@ -55,7 +55,7 @@ exports.default = ({ name, group, enableEncryption, vaultInfo, dependsOn, ignore
|
|
|
55
55
|
},
|
|
56
56
|
disableLocalAuth: true,
|
|
57
57
|
encryption: {
|
|
58
|
-
keySource: encryption ?
|
|
58
|
+
keySource: encryption ? 'Microsoft.Keyvault' : 'Microsoft.Automation',
|
|
59
59
|
identity: encryption
|
|
60
60
|
? { userAssignedIdentity: [identity.id] }
|
|
61
61
|
: undefined,
|
|
@@ -68,7 +68,7 @@ exports.default = ({ name, group, enableEncryption, vaultInfo, dependsOn, ignore
|
|
|
68
68
|
: undefined,
|
|
69
69
|
},
|
|
70
70
|
sku: {
|
|
71
|
-
name:
|
|
71
|
+
name: 'Basic',
|
|
72
72
|
},
|
|
73
73
|
}, { dependsOn: identity, ignoreChanges });
|
|
74
74
|
auto.identity.apply((i) => (0, Helper_2.grantIdentityPermissions)({
|
|
@@ -78,4 +78,4 @@ exports.default = ({ name, group, enableEncryption, vaultInfo, dependsOn, ignore
|
|
|
78
78
|
}));
|
|
79
79
|
return auto;
|
|
80
80
|
};
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQXV0b21hdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsNEVBQThEO0FBQzlELHNDQUFxRDtBQUNyRCwrQ0FBNEQ7QUFDNUQsd0ZBQWdFO0FBQ2hFLHNDQUE0QztBQUM1QywyQ0FBMEQ7QUFPMUQsa0JBQWUsQ0FBQyxFQUNkLElBQUksRUFDSixLQUFLLEVBQ0wsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxTQUFTLEVBQ1QsYUFBYSxHQUNQLEVBQUUsRUFBRTtJQUNWLElBQUksR0FBRyxJQUFBLGlDQUF3QixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRDLE1BQU0sVUFBVSxHQUNkLGdCQUFnQixJQUFJLFNBQVM7UUFDM0IsQ0FBQyxDQUFDLElBQUEsK0JBQXNCLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztRQUN6QyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRWhCLE1BQU0sS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSx3QkFBZSxFQUFFLENBQUMsQ0FBQztJQUNoRSxNQUFNLFFBQVEsR0FBRyxJQUFBLDhCQUFvQixFQUFDO1FBQ3BDLElBQUk7UUFDSixLQUFLO1FBQ0wsS0FBSztRQUNMLFNBQVM7S0FDVixDQUFDLENBQUM7SUFDSCxtREFBbUQ7SUFFbkQsTUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsaUJBQWlCLENBQzNDLElBQUksRUFDSjtRQUNFLHFCQUFxQixFQUFFLElBQUk7UUFDM0IsR0FBRyxLQUFLO1FBRVIsbUJBQW1CLEVBQUUsS0FBSztRQUMxQixRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsVUFBVSxDQUFDLG9CQUFvQixDQUFDLDJCQUEyQjtZQUNqRSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7U0FDdEM7UUFDRCxnQkFBZ0IsRUFBRSxJQUFJO1FBRXRCLFVBQVUsRUFBRTtZQUNWLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxzQkFBc0I7WUFDckUsUUFBUSxFQUFFLFVBQVU7Z0JBQ2xCLENBQUMsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN6QyxDQUFDLENBQUMsU0FBUztZQUNiLGtCQUFrQixFQUFFLFVBQVU7Z0JBQzVCLENBQUMsQ0FBQztvQkFDRSxPQUFPLEVBQUUsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztvQkFDM0MsV0FBVyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7b0JBQ25ELFVBQVUsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVyxDQUFDO2lCQUNuRDtnQkFDSCxDQUFDLENBQUMsU0FBUztTQUNkO1FBQ0QsR0FBRyxFQUFFO1lBQ0gsSUFBSSxFQUFFLE9BQU87U0FDZDtLQUNGLEVBQ0QsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUN2QyxDQUFDO0lBRUYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN4QixJQUFBLGlDQUF3QixFQUFDO1FBQ3ZCLElBQUk7UUFDSixLQUFLO1FBQ0wsV0FBVyxFQUFFLENBQUUsQ0FBQyxXQUFXO0tBQzVCLENBQUMsQ0FDSCxDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMifQ==
|
|
@@ -1,15 +1,20 @@
|
|
|
1
1
|
import { EnvRoleKeyTypes, EnvRolesResults } from './EnvRoles';
|
|
2
2
|
import { RoleAssignmentProps } from './RoleAssignment';
|
|
3
|
+
export type RoleEnableItem = boolean | {
|
|
4
|
+
[k in EnvRoleKeyTypes]?: boolean;
|
|
5
|
+
};
|
|
3
6
|
export type RoleEnableTypes = {
|
|
4
|
-
enableRGRoles?:
|
|
5
|
-
enableAksRoles?:
|
|
6
|
-
enableStorageRoles?:
|
|
7
|
-
enableIotRoles?:
|
|
8
|
-
enableVaultRoles?:
|
|
7
|
+
enableRGRoles?: RoleEnableItem;
|
|
8
|
+
enableAksRoles?: RoleEnableItem;
|
|
9
|
+
enableStorageRoles?: RoleEnableItem;
|
|
10
|
+
enableIotRoles?: RoleEnableItem;
|
|
11
|
+
enableVaultRoles?: RoleEnableItem;
|
|
9
12
|
/** Container Registry Roles */
|
|
10
|
-
enableACRRoles?:
|
|
13
|
+
enableACRRoles?: RoleEnableItem;
|
|
14
|
+
enableAppConfig?: RoleEnableItem;
|
|
11
15
|
};
|
|
12
|
-
export
|
|
13
|
-
export declare const
|
|
16
|
+
export type ListRoleType = Record<EnvRoleKeyTypes, Set<string>>;
|
|
17
|
+
export declare const getRoleNames: ({ enableRGRoles, enableIotRoles, enableVaultRoles, enableAksRoles, enableStorageRoles, enableACRRoles, enableAppConfig, }: RoleEnableTypes) => Record<EnvRoleKeyTypes, string[]>;
|
|
18
|
+
export declare const grantEnvRolesAccess: ({ name, envRoles, scope, dependsOn, ...others }: RoleEnableTypes & Omit<RoleAssignmentProps, "roleName" | "principalType" | "principalId"> & {
|
|
14
19
|
envRoles: EnvRolesResults;
|
|
15
20
|
}) => void;
|