in packages/cdk/lib/cloudquery/cluster.ts [145:210]
constructor(scope: GuStack, id: string, props: CloudqueryClusterProps) {
super(scope, id, {
vpc: props.vpc,
enableFargateCapacityProviders: true,
containerInsights: true,
});
const {
app,
db,
dbAccess,
sources,
loggingStreamName,
logShippingPolicy,
cloudqueryApiKey,
enableCloudquerySchedules,
} = props;
const taskProps = {
app,
cluster: this,
db,
dbAccess,
loggingStreamName,
};
sources.forEach(
({
name,
schedule,
config,
managedPolicies = [],
policies = [],
secrets,
additionalCommands,
memoryLimitMiB,
cpu,
additionalSecurityGroups,
runAsSingleton = false,
dockerDistributedPluginImage,
writeMode = CloudqueryWriteMode.OverwriteDeleteStale,
}) => {
new ScheduledCloudqueryTask(scope, `CloudquerySource-${name}`, {
...taskProps,
enabled: enableCloudquerySchedules,
name,
managedPolicies,
policies: [logShippingPolicy, ...policies],
schedule,
sourceConfig: config,
secrets,
additionalCommands,
memoryLimitMiB,
cpu,
additionalSecurityGroups,
runAsSingleton,
cloudQueryApiKey: Secret.fromSecretsManager(
cloudqueryApiKey,
'api-key',
),
dockerDistributedPluginImage,
writeMode,
});
},
);
}