Skip to content

Commit e570590

Browse files
authored
Merge pull request #41 from baoduy/develop
Develop
2 parents cba1c24 + a8a7213 commit e570590

12 files changed

+179
-189
lines changed

src/Aks/index.ts

+86-86
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
import * as native from "@pulumi/azure-native";
2-
import * as pulumi from "@pulumi/pulumi";
3-
import { Input, Output, output } from "@pulumi/pulumi";
4-
import vmsDiagnostic from "./VmSetMonitor";
5-
import { BasicResourceArgs, KeyVaultInfo, ResourceInfo } from "../types";
1+
import * as native from '@pulumi/azure-native';
2+
import * as pulumi from '@pulumi/pulumi';
3+
import { Input, Output, output } from '@pulumi/pulumi';
4+
import vmsDiagnostic from './VmSetMonitor';
5+
import { BasicResourceArgs, KeyVaultInfo, ResourceInfo } from '../types';
66
import {
77
currentEnv,
88
defaultScope,
@@ -11,28 +11,28 @@ import {
1111
parseResourceInfoFromId,
1212
isPrd,
1313
tenantId,
14-
} from "../Common/AzureEnv";
15-
import Locker from "../Core/Locker";
16-
import aksIdentityCreator from "./Identity";
17-
import { stack } from "../Common/StackEnv";
18-
import { createDiagnostic } from "../Logs/Helpers";
19-
import { getAksName, getResourceGroupName } from "../Common/Naming";
20-
import { roleAssignment } from "../AzAd/RoleAssignment";
21-
import { EnvRolesResults } from "../AzAd/EnvRoles";
22-
import { getAksConfig } from "./Helper";
23-
import { addCustomSecret } from "../KeyVault/CustomHelper";
24-
import * as inputs from "@pulumi/azure-native/types/input";
25-
import { getKeyVaultBase } from "@drunk-pulumi/azure-providers/AzBase/KeyVaultBase";
26-
import { IdentityResult } from "../AzAd/Identity";
27-
import { ManagedCluster } from "@pulumi/azure-native/containerservice";
14+
} from '../Common/AzureEnv';
15+
import Locker from '../Core/Locker';
16+
import aksIdentityCreator from './Identity';
17+
import { stack } from '../Common/StackEnv';
18+
import { createDiagnostic } from '../Logs/Helpers';
19+
import { getAksName, getResourceGroupName } from '../Common';
20+
import { roleAssignment } from '../AzAd/RoleAssignment';
21+
import { EnvRolesResults } from '../AzAd/EnvRoles';
22+
import { getAksConfig } from './Helper';
23+
import { addCustomSecret } from '../KeyVault/CustomHelper';
24+
import * as inputs from '@pulumi/azure-native/types/input';
25+
import { getKeyVaultBase } from '@drunk-pulumi/azure-providers/AzBase/KeyVaultBase';
26+
import { IdentityResult } from '../AzAd/Identity';
27+
import { ManagedCluster } from '@pulumi/azure-native/containerservice';
2828

2929
const autoScaleFor = ({
3030
enableAutoScaling,
3131
nodeType,
3232
env,
3333
}: {
3434
env: Environments;
35-
nodeType: "Default" | "System" | "User";
35+
nodeType: 'Default' | 'System' | 'User';
3636
enableAutoScaling?: boolean;
3737
}) => {
3838
const nodeCount = 1;
@@ -41,12 +41,12 @@ const autoScaleFor = ({
4141

4242
if (env === Environments.Prd) {
4343
switch (nodeType) {
44-
case "User":
44+
case 'User':
4545
maxCount = 5;
4646
break;
4747

48-
case "Default":
49-
case "System":
48+
case 'Default':
49+
case 'System':
5050
default:
5151
maxCount = 3;
5252
break;
@@ -62,9 +62,9 @@ const autoScaleFor = ({
6262
};
6363

6464
const defaultNodePoolProps = {
65-
availabilityZones: isPrd ? ["1", "2", "3"] : undefined,
65+
availabilityZones: isPrd ? ['1', '2', '3'] : undefined,
6666
type: native.containerservice.AgentPoolType.VirtualMachineScaleSets,
67-
vmSize: "Standard_B2s",
67+
vmSize: 'Standard_B2s',
6868

6969
maxPods: 50,
7070
enableFIPS: false,
@@ -83,25 +83,25 @@ const defaultNodePoolProps = {
8383

8484
export enum VmSizes {
8585
/** 32G RAM - 4CPU - $221.92 */
86-
Standard_E4as_v4 = "Standard_E4as_v4",
86+
Standard_E4as_v4 = 'Standard_E4as_v4',
8787
/** 8G RAM - 2CPU - $77.38 */
88-
Standard_B2ms = "Standard_B2ms",
88+
Standard_B2ms = 'Standard_B2ms',
8989
/** 16G RAM - 4CPU - $154.03 */
90-
Standard_B4ms = "Standard_B4ms",
90+
Standard_B4ms = 'Standard_B4ms',
9191
/** 8G RAM - 2CPU - 87.60 */
92-
Standard_D2as_v4 = "Standard_D2as_v4",
92+
Standard_D2as_v4 = 'Standard_D2as_v4',
9393
/** 8G RAM - 2CPU - 87.60 */
94-
Standard_D2s_v3 = "Standard_D2s_v3",
94+
Standard_D2s_v3 = 'Standard_D2s_v3',
9595
/** 8G RAM - 4CPU - 182.5 */
96-
Standard_D4s_v3 = "Standard_D4s_v3",
96+
Standard_D4s_v3 = 'Standard_D4s_v3',
9797
/** 16G RAM - 4CPU - $175.20 */
98-
Standard_D4as_v4 = "Standard_D4as_v4",
98+
Standard_D4as_v4 = 'Standard_D4as_v4',
9999
/** 4G RAM - 2CPU - $69.35 */
100-
Standard_A2_v2 = "Standard_A2_v2",
100+
Standard_A2_v2 = 'Standard_A2_v2',
101101
/** 8G RAM - 4CPU - $144.54 */
102-
Standard_A4_v2 = "Standard_A4_v2",
102+
Standard_A4_v2 = 'Standard_A4_v2',
103103
/** 32G RAM - 4CPU - $205.13 */
104-
Standard_A4m_v2 = "Standard_A4m_v2",
104+
Standard_A4m_v2 = 'Standard_A4m_v2',
105105
}
106106

107107
export interface NodePoolProps
@@ -144,8 +144,8 @@ export type AksNetworkProps = {
144144
};
145145
};
146146

147-
export type AksNodePoolProps = Omit<NodePoolProps, "subnetId" | "aksId">;
148-
export type DefaultAksNodePoolProps = Omit<AksNodePoolProps, "name" | "mode">;
147+
export type AksNodePoolProps = Omit<NodePoolProps, 'subnetId' | 'aksId'>;
148+
export type DefaultAksNodePoolProps = Omit<AksNodePoolProps, 'name' | 'mode'>;
149149

150150
export interface AksProps extends BasicResourceArgs {
151151
//nodeResourceGroup?: string;
@@ -219,10 +219,10 @@ export default async ({
219219

220220
if (ignoreChanges.length <= 0) {
221221
ignoreChanges.push(
222-
"privateLinkResources",
223-
"networkProfile",
224-
"linuxProfile",
225-
"windowsProfile",
222+
'privateLinkResources',
223+
'networkProfile',
224+
'linuxProfile',
225+
'windowsProfile',
226226
);
227227
}
228228

@@ -256,14 +256,14 @@ export default async ({
256256
disableRunCommand: true,
257257
enablePrivateCluster: features?.enablePrivateCluster,
258258
enablePrivateClusterPublicFQDN: true,
259-
privateDNSZone: "system",
259+
privateDNSZone: 'system',
260260
},
261261

262262
addonProfiles: {
263263
azureKeyvaultSecretsProvider: {
264264
config: addon.enableAzureKeyVault
265265
? {
266-
enableSecretRotation: "true",
266+
enableSecretRotation: 'true',
267267
}
268268
: undefined,
269269
enabled: Boolean(addon.enableAzureKeyVault),
@@ -312,7 +312,7 @@ export default async ({
312312
...defaultNodePool,
313313
...autoScaleFor({
314314
env: currentEnv,
315-
nodeType: "System",
315+
nodeType: 'System',
316316
enableAutoScaling: features?.enableAutoScale,
317317
// powerState: {
318318
// code: "Running",
@@ -322,13 +322,13 @@ export default async ({
322322
// },
323323
}),
324324

325-
name: "defaultnodes",
326-
mode: "System",
325+
name: 'defaultnodes',
326+
mode: 'System',
327327
count: 1,
328328
vnetSubnetID: network.subnetId,
329-
kubeletDiskType: "OS",
330-
osSKU: "Ubuntu",
331-
osType: "Linux",
329+
kubeletDiskType: 'OS',
330+
osSKU: 'Ubuntu',
331+
osType: 'Linux',
332332
},
333333
],
334334
linuxProfile: linux
@@ -339,27 +339,27 @@ export default async ({
339339
: undefined,
340340
//This is not inuse
341341
windowsProfile: {
342-
adminUsername: "azureuser",
342+
adminUsername: 'azureuser',
343343
enableCSIProxy: true,
344344
},
345345
autoScalerProfile: {
346-
balanceSimilarNodeGroups: "true",
347-
expander: "random",
348-
maxEmptyBulkDelete: "10",
349-
maxGracefulTerminationSec: "600",
350-
maxNodeProvisionTime: "15m",
351-
maxTotalUnreadyPercentage: "45",
352-
newPodScaleUpDelay: "0s",
353-
okTotalUnreadyCount: "3",
354-
scaleDownDelayAfterAdd: "30m",
355-
scaleDownDelayAfterDelete: "60s",
356-
scaleDownDelayAfterFailure: "10m",
357-
scaleDownUnneededTime: "10m",
358-
scaleDownUnreadyTime: "20m",
359-
scaleDownUtilizationThreshold: "0.5",
360-
scanInterval: "60s",
361-
skipNodesWithLocalStorage: "false",
362-
skipNodesWithSystemPods: "true",
346+
balanceSimilarNodeGroups: 'true',
347+
expander: 'random',
348+
maxEmptyBulkDelete: '10',
349+
maxGracefulTerminationSec: '600',
350+
maxNodeProvisionTime: '15m',
351+
maxTotalUnreadyPercentage: '45',
352+
newPodScaleUpDelay: '0s',
353+
okTotalUnreadyCount: '3',
354+
scaleDownDelayAfterAdd: '30m',
355+
scaleDownDelayAfterDelete: '60s',
356+
scaleDownDelayAfterFailure: '10m',
357+
scaleDownUnneededTime: '10m',
358+
scaleDownUnreadyTime: '20m',
359+
scaleDownUtilizationThreshold: '0.5',
360+
scanInterval: '60s',
361+
skipNodesWithLocalStorage: 'false',
362+
skipNodesWithSystemPods: 'true',
363363
},
364364

365365
//Still under preview
@@ -432,7 +432,7 @@ export default async ({
432432
? native.containerservice.OutboundType.UserDefinedRouting
433433
: native.containerservice.OutboundType.LoadBalancer,
434434

435-
loadBalancerSku: "Standard",
435+
loadBalancerSku: 'Standard',
436436
loadBalancerProfile: network.outboundIpAddress
437437
? {
438438
outboundIPs: network.outboundIpAddress.ipAddressId
@@ -463,7 +463,7 @@ export default async ({
463463
new native.containerservice.MaintenanceConfiguration(
464464
`${aksName}-MaintenanceConfiguration`,
465465
{
466-
configName: "default",
466+
configName: 'default',
467467
// notAllowedTime: [
468468
// {
469469
// end: "2020-11-30T12:00:00Z",
@@ -502,12 +502,12 @@ export default async ({
502502
enableAutoScaling: features.enableAutoScale,
503503
}),
504504

505-
count: p.mode === "System" ? 1 : 0,
505+
count: p.mode === 'System' ? 1 : 0,
506506
//orchestratorVersion: kubernetesVersion,
507507
vnetSubnetID: network.subnetId,
508-
kubeletDiskType: "OS",
509-
osSKU: "Ubuntu",
510-
osType: "Linux",
508+
kubeletDiskType: 'OS',
509+
osSKU: 'Ubuntu',
510+
osType: 'Linux',
511511
}),
512512
);
513513
}
@@ -520,18 +520,18 @@ export default async ({
520520
pulumi
521521
.all([aks.identity, aks.identityProfile, network.subnetId])
522522
.apply(([identity, identityProfile, sId]) => {
523-
if (acrScope && identityProfile && identityProfile["kubeletidentity"]) {
523+
if (acrScope && identityProfile && identityProfile['kubeletidentity']) {
524524
roleAssignment({
525525
name: `${name}-aks-identity-profile-pull`,
526-
principalId: identityProfile["kubeletidentity"].objectId!,
527-
principalType: "ServicePrincipal",
528-
roleName: "AcrPull",
526+
principalId: identityProfile['kubeletidentity'].objectId!,
527+
principalType: 'ServicePrincipal',
528+
roleName: 'AcrPull',
529529
scope: acrScope,
530530
});
531531

532532
addCustomSecret({
533533
name: `${name}-identity-clientId`,
534-
value: identityProfile["kubeletidentity"].clientId!,
534+
value: identityProfile['kubeletidentity'].clientId!,
535535
dependsOn: aks,
536536
contentType: name,
537537
vaultInfo,
@@ -542,8 +542,8 @@ export default async ({
542542
roleAssignment({
543543
name: `${name}-system-net`,
544544
principalId: identity.principalId,
545-
roleName: "Contributor",
546-
principalType: "ServicePrincipal",
545+
roleName: 'Contributor',
546+
principalType: 'ServicePrincipal',
547547
scope: getResourceIdFromInfo({
548548
group: parseResourceInfoFromId(sId)!.group,
549549
}),
@@ -577,12 +577,12 @@ export default async ({
577577
targetResourceId: id,
578578
logWpId,
579579
logsCategories: [
580-
"guard",
581-
"kube-controller-manager",
582-
"kube-audit-admin",
583-
"kube-audit",
584-
"kube-scheduler",
585-
"cluster-autoscaler",
580+
'guard',
581+
'kube-controller-manager',
582+
'kube-audit-admin',
583+
'kube-audit',
584+
'kube-scheduler',
585+
'cluster-autoscaler',
586586
],
587587
dependsOn: aks,
588588
});

src/Builder/AksBuilder.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import {
77
BuilderAsync,
88
SshBuilderProps,
99
BuilderProps,
10-
} from "./types";
11-
import { generateSsh, SshResults } from "../Core/KeyGenetators";
12-
import { ManagedClusterSKUTier } from "@pulumi/azure-native/containerservice";
10+
} from './types';
11+
import { generateSsh, SshResults } from '../Core/KeyGenerators';
12+
import { ManagedClusterSKUTier } from '@pulumi/azure-native/containerservice';
1313
import Aks, {
1414
AksNodePoolProps,
1515
AskAddonProps,
@@ -18,7 +18,7 @@ import Aks, {
1818
AksNetworkProps,
1919
DefaultAksNodePoolProps,
2020
AksResults,
21-
} from "../Aks";
21+
} from '../Aks';
2222

2323
class AksBuilder
2424
extends BuilderAsync<AksResults>
@@ -37,7 +37,7 @@ class AksBuilder
3737
private _nodePoolsProps: AksNodePoolProps[] = [];
3838
private _addonProps: AskAddonProps | undefined = undefined;
3939
private _featureProps: AskFeatureProps | undefined = undefined;
40-
private _authProps: Omit<AksAccessProps, "envRoles"> | undefined = {};
40+
private _authProps: Omit<AksAccessProps, 'envRoles'> | undefined = {};
4141
private _tier: ManagedClusterSKUTier = ManagedClusterSKUTier.Free;
4242
private _networkProps: AksNetworkProps | undefined = undefined;
4343
private _defaultNode: DefaultAksNodePoolProps | undefined = undefined;
@@ -65,7 +65,7 @@ class AksBuilder
6565
this._featureProps = props;
6666
return this;
6767
}
68-
public withAuth(props: Omit<AksAccessProps, "envRoles">): IAksBuilder {
68+
public withAuth(props: Omit<AksAccessProps, 'envRoles'>): IAksBuilder {
6969
this._authProps = props;
7070
return this;
7171
}

0 commit comments

Comments
 (0)