constructor()

in integ/lib/worker-struct.ts [32:98]


  constructor(scope: Construct, id: string, props: WorkerStructProps) {
    super(scope, id);

    // Collect environment variables
    const infrastructureStackName = 'RFDKIntegInfrastructure' + props.integStackTag;
    const linuxAmi = process.env.LINUX_DEADLINE_AMI_ID!.toString();
    const windowsAmi = process.env.WINDOWS_DEADLINE_AMI_ID!.toString();

    let workerMachineImage: IMachineImage;

    // Retrieve VPC created for _infrastructure stack
    const vpc = Vpc.fromLookup(this, 'Vpc', { tags: { StackName: infrastructureStackName }}) as Vpc;

    this.renderQueue = props.renderStruct.renderQueue;
    this.cert = props.renderStruct.cert;

    if( props.os === 'Windows' ) {
      const deadlineClientWindowsAmiMap: Record<string, string> = {[Stack.of(this).region]: windowsAmi};
      workerMachineImage = MachineImage.genericWindows(deadlineClientWindowsAmiMap);
    }
    else {
      const deadlineClientLinuxAmiMap: Record<string, string> = {[Stack.of(this).region]: linuxAmi};
      workerMachineImage = MachineImage.genericLinux(deadlineClientLinuxAmiMap);
    }

    const workerSubnets = vpc.selectSubnets({ subnetGroupName: NetworkTier.subnetConfig.workerInstanceFleet.name });
    this.workerFleet.push(
      new WorkerInstanceFleet(this, 'Worker1', {
        vpc,
        vpcSubnets: workerSubnets,
        renderQueue: this.renderQueue,
        workerMachineImage,
        logGroupProps: {
          logGroupPrefix: `/${Stack.of(this).stackName}-${id}/`,
          retention: RetentionDays.TWO_MONTHS,
        },
        groups: ['testgroup'],
      }),
      new WorkerInstanceFleet(this, 'Worker2', {
        vpc,
        vpcSubnets: workerSubnets,
        renderQueue: this.renderQueue,
        workerMachineImage,
        logGroupProps: {
          logGroupPrefix: `/${Stack.of(this).stackName}-${id}/`,
          retention: RetentionDays.TWO_MONTHS,
        },
        pools: ['testpool'],
      }),
      new WorkerInstanceFleet(this, 'Worker3', {
        vpc,
        vpcSubnets: workerSubnets,
        renderQueue: this.renderQueue,
        workerMachineImage,
        logGroupProps: {
          logGroupPrefix: `/${Stack.of(this).stackName}-${id}/`,
          retention: RetentionDays.TWO_MONTHS,
        },
        region: 'testregion',
      }),
    );

    this.workerFleet.forEach( worker => {
      worker.connections.allowFromAnyIpv4(Port.tcp(22));
    });

  }