constructor()

in lib/stacks/vcs-stack.ts [22:62]


  constructor(scope: cdk.Construct, id: string, props: VCSStackProps) {
    super(scope, id, props);

    if (props.isSVN) {
      // SVN
      const svn = new SVNPattern(this, "svn", {
        vpc: props.vpc,
        backup: props.backup,

        allowAccessFrom: props.allowAccessFrom,
        subnetType: ec2.SubnetType.PUBLIC,
        ssmLogBucket: props.ssmLogBucket,
      });

      new route53.ARecord(this, "vcs-ip", {
        zone: props.zone,
        recordName: props.recordName,
        target: route53.RecordTarget.fromIpAddresses(
          svn.instance.instancePrivateIp
        ),
      });
    }

    // Perforce
    const p4 = new P4Pattern(this, "p4", {
      vpc: props.vpc,
      backup: props.backup,
      allowAccessFrom: props.allowAccessFrom,
      subnetType: ec2.SubnetType.PUBLIC,
      ssmLogBucket: props.ssmLogBucket,
      // hasReplica: true, // WIP
    });

    new route53.ARecord(this, "p4-ip", {
      zone: props.zone,
      recordName: "p4",
      target: route53.RecordTarget.fromIpAddresses(
        p4.primaryInstance.instancePrivateIp
      ),
    });
  }