-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpayload-functions.js
68 lines (64 loc) · 1.81 KB
/
payload-functions.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const { isObjectEmpty } = require("./helpers");
function prepareCreateClusterPayload(params) {
const resourcesVpcConfig = {
subnetIds: params.vpcSubnets,
securityGroupIds: params.vpcSecurityGroups,
endpointPrivateAccess: params.endpointPrivateAccess,
endpointPublicAccess: params.endpointPublicAccess,
};
if (params.publicAccessCidrs) {
resourcesVpcConfig.publicAccessCidrs = params.publicAccessCidrs;
}
const kubernetesNetworkConfig = {
ipFamily: params.kubernetesIpFamily,
serviceIpv4Cidr: params.kubernetesServiceIpv4Cidr,
};
const logs = {
api: params.apiLogs,
audit: params.auditLogs,
authenticator: params.authenticatorLogs,
controllerManager: params.controllerManagerLogs,
scheduler: params.schedulerLogs,
};
const { tags } = params;
const encryption = {
resources: params.encryptionResources,
provider: {
keyArn: params.encryptionKey,
},
};
const clusterParams = {
name: params.clusterName,
roleArn: params.roleArn,
};
if (params.kubernetesVersion) {
clusterParams.version = params.kubernetesVersion;
}
if (!isObjectEmpty(resourcesVpcConfig)) {
clusterParams.resourcesVpcConfig = resourcesVpcConfig;
}
if (!isObjectEmpty(kubernetesNetworkConfig)) {
clusterParams.kubernetesNetworkConfig = kubernetesNetworkConfig;
}
if (!isObjectEmpty(logs)) {
const keys = Object.keys(logs).filter((key) => !!logs[key]);
clusterParams.logging = {
clusterLogging: [
{
enabled: true,
types: keys,
},
],
};
}
if (!isObjectEmpty(tags)) {
clusterParams.tags = tags;
}
if (encryption.resources && !isObjectEmpty(encryption.provider)) {
clusterParams.encryptionConfig = [encryption];
}
return clusterParams;
}
module.exports = {
prepareCreateClusterPayload,
};