AWSTemplateFormatVersion: '2010-09-09' Conditions: ShouldCreatePeerRoute1: !Not - !Equals - !Ref 'ResourcePrivateRT1' - '' ShouldCreatePeerRoute2: !Not - !Equals - !Ref 'ResourcePrivateRT2' - '' Description: Monte Carlo Data Collector peering connection (accepter stack). Metadata: AWS::CloudFormation::Interface: ParameterGroups: - Label: default: Data Collector Peering Configuration (Requester) Parameters: - DataCollectorBlock - PeeringConnection - Label: default: Customer Peering Configuration (Accepter) Parameters: - ResourceSGID - ResourcePrivateRT0 - ResourcePrivateRT1 - ResourcePrivateRT2 ParameterLabels: DataCollectorBlock: default: Monte Carlo Data Collector CIDR Block PeeringConnection: default: Monte Carlo Data Collector Peering Connection ResourcePrivateRT0: default: 'Resource / Warehouse Route Table #1' ResourcePrivateRT1: default: '[Optional] Resource / Warehouse Route Table #2' ResourcePrivateRT2: default: '[Optional] Resource / Warehouse Route Table #3' ResourceSGID: default: Resource / Warehouse Security Group Parameters: DataCollectorBlock: Description: CIDR block for the requester VPC. Type: String PeeringConnection: Description: Peering Connection ID (e.g. pcx-*). Type: String ResourcePrivateRT0: Description: Accepter Route Table ID. Type: String ResourcePrivateRT1: Default: '' Description: Accepter Route Table ID. Only necessary if the subnets associated with the Resource / Warehouse use multiple route tables (at least 2). Type: String ResourcePrivateRT2: Default: '' Description: Accepter Route Table ID. Only necessary if the subnets associated with the Resource / Warehouse use multiple route tables (at least 3). Type: String ResourceSGID: Description: Accepter Security Group ID. Type: AWS::EC2::SecurityGroup::Id Resources: PeeringIngress: Properties: CidrIp: !Ref 'DataCollectorBlock' GroupId: !Ref 'ResourceSGID' IpProtocol: '-1' Type: AWS::EC2::SecurityGroupIngress PeeringRoute0: Properties: DestinationCidrBlock: !Ref 'DataCollectorBlock' RouteTableId: !Ref 'ResourcePrivateRT0' VpcPeeringConnectionId: !Ref 'PeeringConnection' Type: AWS::EC2::Route PeeringRoute1: Condition: ShouldCreatePeerRoute1 Properties: DestinationCidrBlock: !Ref 'DataCollectorBlock' RouteTableId: !Ref 'ResourcePrivateRT1' VpcPeeringConnectionId: !Ref 'PeeringConnection' Type: AWS::EC2::Route PeeringRoute2: Condition: ShouldCreatePeerRoute2 Properties: DestinationCidrBlock: !Ref 'DataCollectorBlock' RouteTableId: !Ref 'ResourcePrivateRT2' VpcPeeringConnectionId: !Ref 'PeeringConnection' Type: AWS::EC2::Route