in lib/utils/cluster-utils.ts [11:78]
export function setupClusterLogging(stack: Stack, cluster: eks.Cluster, enableLogTypes: string[]): void {
if(!enableLogTypes.every(val => CONTROL_PLANE_LOG_TYPES.includes(val))){
throw new Error('You have included an invalid Control Plane Log Type.');
}
let disableLogTypes = CONTROL_PLANE_LOG_TYPES.filter(item => enableLogTypes.indexOf(item) < 0);
new AwsCustomResource(stack, "ClusterLogsEnabler", {
policy: AwsCustomResourcePolicy.fromSdkCalls({
resources: [`${cluster.clusterArn}/update-config`],
}),
onCreate: {
physicalResourceId: { id: `${cluster.clusterArn}/LogsEnabler` },
service: "EKS",
action: "updateClusterConfig",
region: stack.region,
parameters: {
name: cluster.clusterName,
logging: {
clusterLogging: [
{
enabled: true,
types: enableLogTypes,
},
],
},
},
},
onDelete: {
physicalResourceId: { id: `${cluster.clusterArn}/LogsEnabler` },
service: "EKS",
action: "updateClusterConfig",
region: stack.region,
parameters: {
name: cluster.clusterName,
logging: {
clusterLogging: [
{
enabled: false,
types: CONTROL_PLANE_LOG_TYPES,
},
],
},
},
},
onUpdate: {
physicalResourceId: { id: `${cluster.clusterArn}/LogsEnabler` },
service: "EKS",
action: "updateClusterConfig",
region: stack.region,
parameters: {
name: cluster.clusterName,
logging: {
clusterLogging: [
{
enabled: true,
types: enableLogTypes,
},
{
enabled: false,
types: disableLogTypes,
},
],
},
},
},
});
}