constructor()

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,
				});
			},
		);
	}