diff --git a/.travis.yml b/.travis.yml
index a49cdbb..ab298c9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -39,7 +39,7 @@ script:
- sed -i "s@SolaceStackRegionNAME@${AWS_DEFAULT_REGION}@g" ci/solace-aws-ha-3az-prod-travistest.json
- aws s3 mb s3://solace-cf-quickstart-travistest || echo "s3 bucket already existed"
- aws s3 sync . s3://solace-cf-quickstart-travistest/solace/eventbroker/latest --acl public-read
- - export TESTSTACKPREFIX="T$(date +%s)"; export TESTSTACKNAME="$TESTSTACKPREFIX-sol-aws-travistest";
+ - export TESTSTACKPREFIX=T`echo "$(date +%s)" | rev`; export TESTSTACKNAME="$TESTSTACKPREFIX-sol-aws-travistest";
- aws cloudformation create-stack --stack-name $TESTSTACKNAME --template-body file://templates/solace-master.template --parameters file://ci/solace-aws-ha-3az-prod-travistest.json --on-failure DO_NOTHING --capabilities CAPABILITY_IAM
- echo "Waiting for stack create complete"
- "travis_wait 30 sleep 1800 &"
@@ -47,10 +47,17 @@ script:
- aws cloudformation describe-stack-events --stack-name $TESTSTACKNAME
- aws cloudformation describe-stacks --stack-name $TESTSTACKNAME
- echo "Pausing to get the ELB ready"; sleep 10
- - url="$(aws elb describe-load-balancers | grep DNSName | grep $TESTSTACKPREFIX | awk -F '"' '{print $4}')"; echo $url
+ - export url="$(aws elbv2 describe-load-balancers | grep DNSName | grep `echo $TESTSTACKPREFIX | head -c4` | awk -F '"' '{print $4}')"; echo $url
+ - until curl http://$url:8080; do sleep 10; done
- curl -O https://sftp.solace.com/download/SDKPERF_C_LINUX64
- tar -xvf SDKPERF_C_LINUX64
- pubSubTools/sdkperf_c -cip=$url -mn=100000 -mr=0 -ptl=t1 -stl=t1 | grep "Total Messages"
+ - sleep 30
+ - curl -sS -u admin:admin http://$url:8080/SEMP -d ""
+ - curl -sS -u admin:admin http://$url:8080/SEMP -d ""
+ - bash -c 'if [[ -z `curl -sS -u admin:admin http://$url:8080/SEMP -d ""
+ | grep "Up"` ]] ; then echo "config-sync not up!"; exit
+ 1; fi'
after_success:
- echo "Test Success - Branch($TRAVIS_BRANCH) Pull Request($TRAVIS_PULL_REQUEST) Tag($TRAVIS_TAG)"
diff --git a/README.md b/README.md
index 6688006..6583cef 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ Below is the list of AWS resources that will be deployed by the Quick Start. Ple
## Required IAM roles
-Look for `AWS::IAM::Role` in the templates source for the list of required IAM roles to create the stacks.
+Look for `AWS::IAM::Role` in the templates source for the list of required IAM roles to create the stacks.
# How to Deploy PubSub+ Software Event Broker in an HA Group
diff --git a/templates/solace.template b/templates/solace.template
index 81cd58c..bf7df15 100644
--- a/templates/solace.template
+++ b/templates/solace.template
@@ -536,6 +536,10 @@ Resources:
VpcId: !Ref 'VPCID'
GroupDescription: Event Broker Security Group
SecurityGroupIngress:
+ - IpProtocol: tcp
+ FromPort: '5550'
+ ToPort: '5550'
+ CidrIp: !Ref 'RemoteAccessCIDR'
- IpProtocol: tcp
FromPort: '55555'
ToPort: '55555'
@@ -594,60 +598,309 @@ Resources:
Timeout: '600'
Count: '1'
ELB:
- Type: AWS::ElasticLoadBalancing::LoadBalancer
+ Type: AWS::ElasticLoadBalancingV2::LoadBalancer
DependsOn:
- EventBrokerPrimaryStack
+ - EventBrokerBackupStack
Condition: UsePrivateSubnetsCondition
Properties:
- SecurityGroups:
- - !Ref 'EventBrokerSecurityGroup'
- - !Ref 'SolaceInternalSecurityGroupMember'
+ Scheme: internet-facing
Subnets: !Ref 'PublicSubnetIDs'
- Instances:
- - !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
- - !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
- - !GetAtt 'MonitorStack.Outputs.EC2ID'
- HealthCheck:
- Target: !Join
- - ''
- - - 'HTTP:'
- - 5550
- - /health-check/guaranteed-active
- Timeout: '3'
- Interval: '5'
- UnhealthyThreshold: '2'
- HealthyThreshold: '2'
- Listeners:
- - LoadBalancerPort: '55555'
- InstancePort: '55555'
- Protocol: TCP
- - LoadBalancerPort: '55003'
- InstancePort: '55003'
- Protocol: TCP
- - LoadBalancerPort: '55443'
- InstancePort: '55443'
- Protocol: TCP
- - LoadBalancerPort: '1443'
- InstancePort: '1443'
- Protocol: TCP
- - LoadBalancerPort: '8000'
- InstancePort: '8000'
- Protocol: TCP
- - LoadBalancerPort: '5672'
- InstancePort: '5672'
- Protocol: TCP
- - LoadBalancerPort: '9000'
- InstancePort: '9000'
- Protocol: TCP
- - LoadBalancerPort: '1883'
- InstancePort: '1883'
- Protocol: TCP
- - LoadBalancerPort: '8008'
- InstancePort: '8008'
- Protocol: TCP
- - LoadBalancerPort: '8080'
- InstancePort: '8080'
- Protocol: TCP
- - LoadBalancerPort: '1943'
- InstancePort: '1943'
- Protocol: TCP
\ No newline at end of file
+ Type: network
+ Port55555NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 55555
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 55555
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 55555
+ Port55003NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 55003
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 55003
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 55003
+ Port55443NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 55443
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 55443
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 55443
+ Port1443NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 1443
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 1443
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 1443
+ Port8000NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 8000
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 8000
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 8000
+ Port5672NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 5672
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 5672
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 5672
+ Port9000NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 9000
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 9000
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 9000
+ Port1883NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 1883
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 1883
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 1883
+ Port8008NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 8008
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 8008
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 8008
+ Port8080NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 8080
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 8080
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 8080
+ Port1943NetworkLoadBalancerTargetGroup:
+ Type: AWS::ElasticLoadBalancingV2::TargetGroup
+ DependsOn:
+ - ELB
+ Properties:
+ Port: 1943
+ Protocol: TCP
+ VpcId: !Ref 'VPCID'
+ HealthCheckPath: '/health-check/guaranteed-active'
+ HealthCheckPort: 5550
+ HealthCheckProtocol: 'HTTP'
+ Targets:
+ - Id: !GetAtt 'EventBrokerPrimaryStack.Outputs.EC2ID'
+ Port: 1943
+ - Id: !GetAtt 'EventBrokerBackupStack.Outputs.EC2ID'
+ Port: 1943
+ Port55555NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port55555NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '55555'
+ Protocol: TCP
+ Port55003NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port55003NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '55003'
+ Protocol: TCP
+ Port55443NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port55443NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '55443'
+ Protocol: TCP
+ Port1443NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port1443NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '1443'
+ Protocol: TCP
+ Port8000NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port8000NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '8000'
+ Protocol: TCP
+ Port5672NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port5672NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '5672'
+ Protocol: TCP
+ Port9000NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port9000NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '9000'
+ Protocol: TCP
+ Port1883NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port1883NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '1883'
+ Protocol: TCP
+ Port8008NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port8008NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '8008'
+ Protocol: TCP
+ Port8080NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port8080NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '8080'
+ Protocol: TCP
+ Port1943NetworkLoadBalancerListener:
+ Type: AWS::ElasticLoadBalancingV2::Listener
+ DependsOn:
+ - ELB
+ Properties:
+ DefaultActions:
+ - Type: forward
+ TargetGroupArn: !Ref 'Port1943NetworkLoadBalancerTargetGroup'
+ LoadBalancerArn: !Ref 'ELB'
+ Port: '1943'
+ Protocol: TCP