walkthroughs/howto-ipv6/dns/mesh/mesh-v4-only.yaml (313 lines of code) (raw):
Parameters:
AppMeshMeshName:
Type: String
Description: Mesh name
ProjectName:
Type: String
Description: Project name to link stacks
Resources:
Mesh:
Type: AWS::AppMesh::Mesh
Properties:
MeshName: !Sub '${AppMeshMeshName}'
Spec:
ServiceDiscovery:
IpPreference: "IPv4_ONLY"
ColorGateway:
Type: AWS::AppMesh::VirtualGateway
Properties:
MeshName: !GetAtt Mesh.MeshName
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
VirtualGatewayName: colorgateway-vg
RedGatewayRoute:
DependsOn:
- ColorGateway
- VirtualServiceRed
Type: AWS::AppMesh::GatewayRoute
Properties:
GatewayRouteName: colorgateway-route-red
MeshName: !GetAtt Mesh.MeshName
Spec:
HttpRoute:
Match:
Prefix: "/red"
Action:
Target:
VirtualService:
VirtualServiceName: 'colorteller-1.default.svc.cluster.local'
VirtualGatewayName: !GetAtt ColorGateway.VirtualGatewayName
OrangeGatewayRoute:
DependsOn:
- ColorGateway
- VirtualServiceOrange
Type: AWS::AppMesh::GatewayRoute
Properties:
GatewayRouteName: colorgateway-route-orange
MeshName: !GetAtt Mesh.MeshName
Spec:
HttpRoute:
Match:
Prefix: "/orange"
Action:
Target:
VirtualService:
VirtualServiceName: 'colorteller-2.default.svc.cluster.local'
VirtualGatewayName: !GetAtt ColorGateway.VirtualGatewayName
YellowGatewayRoute:
DependsOn:
- ColorGateway
- VirtualServiceYellow
Type: AWS::AppMesh::GatewayRoute
Properties:
GatewayRouteName: colorgateway-route-yellow
MeshName: !GetAtt Mesh.MeshName
Spec:
HttpRoute:
Match:
Prefix: "/yellow"
Action:
Target:
VirtualService:
VirtualServiceName: 'colorteller-3.default.svc.cluster.local'
VirtualGatewayName: !GetAtt ColorGateway.VirtualGatewayName
GreenGatewayRoute:
DependsOn:
- ColorGateway
- VirtualServiceGreen
Type: AWS::AppMesh::GatewayRoute
Properties:
GatewayRouteName: colorgateway-route-green
MeshName: !GetAtt Mesh.MeshName
Spec:
HttpRoute:
Match:
Prefix: "/green"
Action:
Target:
VirtualService:
VirtualServiceName: 'colorteller-4.default.svc.cluster.local'
VirtualGatewayName: !GetAtt ColorGateway.VirtualGatewayName
BlueGatewayRoute:
DependsOn:
- ColorGateway
- VirtualServiceBlue
Type: AWS::AppMesh::GatewayRoute
Properties:
GatewayRouteName: colorgateway-route-blue
MeshName: !GetAtt Mesh.MeshName
Spec:
HttpRoute:
Match:
Prefix: "/blue"
Action:
Target:
VirtualService:
VirtualServiceName: 'colorteller-5.default.svc.cluster.local'
VirtualGatewayName: !GetAtt ColorGateway.VirtualGatewayName
PurpleGatewayRoute:
DependsOn:
- ColorGateway
- VirtualServicePurple
Type: AWS::AppMesh::GatewayRoute
Properties:
GatewayRouteName: colorgateway-route-purple
MeshName: !GetAtt Mesh.MeshName
Spec:
HttpRoute:
Match:
Prefix: "/purple"
Action:
Target:
VirtualService:
VirtualServiceName: 'colorteller-6.default.svc.cluster.local'
VirtualGatewayName: !GetAtt ColorGateway.VirtualGatewayName
ColorServerRedNode:
Type: AWS::AppMesh::VirtualNode
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualNodeName: colorteller-red-vn
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
HealthCheck:
HealthyThreshold: 2
IntervalMillis: 5000
TimeoutMillis: 2000
UnhealthyThreshold: 2
Path: '/ping'
Protocol: http
ServiceDiscovery:
DNS:
Hostname: 'colorteller-red.default.svc.cluster.local.dns'
ColorServerOrangeNode:
Type: AWS::AppMesh::VirtualNode
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualNodeName: colorteller-orange-vn
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
HealthCheck:
HealthyThreshold: 2
IntervalMillis: 5000
TimeoutMillis: 2000
UnhealthyThreshold: 2
Path: '/ping'
Protocol: http
ServiceDiscovery:
DNS:
Hostname: 'colorteller-orange.default.svc.cluster.local.dns'
ColorServerYellowNode:
Type: AWS::AppMesh::VirtualNode
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualNodeName: colorteller-yellow-vn
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
HealthCheck:
HealthyThreshold: 2
IntervalMillis: 5000
TimeoutMillis: 2000
UnhealthyThreshold: 2
Path: '/ping'
Protocol: http
ServiceDiscovery:
DNS:
Hostname: 'colorteller-yellow.default.svc.cluster.local.dns'
ColorServerGreenNode:
Type: AWS::AppMesh::VirtualNode
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualNodeName: colorteller-green-vn
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
HealthCheck:
HealthyThreshold: 2
IntervalMillis: 5000
TimeoutMillis: 2000
UnhealthyThreshold: 2
Path: '/ping'
Protocol: http
ServiceDiscovery:
DNS:
Hostname: 'colorteller-green.default.svc.cluster.local.dns'
ColorServerBlueNode:
Type: AWS::AppMesh::VirtualNode
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualNodeName: colorteller-blue-vn
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
HealthCheck:
HealthyThreshold: 2
IntervalMillis: 5000
TimeoutMillis: 2000
UnhealthyThreshold: 2
Path: '/ping'
Protocol: http
ServiceDiscovery:
DNS:
Hostname: 'colorteller-blue.default.svc.cluster.local.dns'
ColorServerPurpleNode:
Type: AWS::AppMesh::VirtualNode
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualNodeName: colorteller-purple-vn
Spec:
Listeners:
- PortMapping:
Port: 9080
Protocol: http
HealthCheck:
HealthyThreshold: 2
IntervalMillis: 5000
TimeoutMillis: 2000
UnhealthyThreshold: 2
Path: '/ping'
Protocol: http
ServiceDiscovery:
DNS:
Hostname: 'colorteller-purple.default.svc.cluster.local.dns'
VirtualServiceRed:
DependsOn:
- ColorServerRedNode
Type: AWS::AppMesh::VirtualService
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualServiceName: 'colorteller-1.default.svc.cluster.local'
Spec:
Provider:
VirtualNode:
VirtualNodeName: colorteller-red-vn
VirtualServiceOrange:
DependsOn:
- ColorServerOrangeNode
Type: AWS::AppMesh::VirtualService
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualServiceName: 'colorteller-2.default.svc.cluster.local'
Spec:
Provider:
VirtualNode:
VirtualNodeName: colorteller-orange-vn
VirtualServiceYellow:
DependsOn:
- ColorServerYellowNode
Type: AWS::AppMesh::VirtualService
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualServiceName: 'colorteller-3.default.svc.cluster.local'
Spec:
Provider:
VirtualNode:
VirtualNodeName: colorteller-yellow-vn
VirtualServiceGreen:
DependsOn:
- ColorServerGreenNode
Type: AWS::AppMesh::VirtualService
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualServiceName: 'colorteller-4.default.svc.cluster.local'
Spec:
Provider:
VirtualNode:
VirtualNodeName: colorteller-green-vn
VirtualServiceBlue:
DependsOn:
- ColorServerBlueNode
Type: AWS::AppMesh::VirtualService
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualServiceName: 'colorteller-5.default.svc.cluster.local'
Spec:
Provider:
VirtualNode:
VirtualNodeName: colorteller-blue-vn
VirtualServicePurple:
DependsOn:
- ColorServerPurpleNode
Type: AWS::AppMesh::VirtualService
Properties:
MeshName: !GetAtt Mesh.MeshName
VirtualServiceName: 'colorteller-6.default.svc.cluster.local'
Spec:
Provider:
VirtualNode:
VirtualNodeName: colorteller-purple-vn