cloudstax / firecamp

Serverless Platform for the stateful services
https://www.cloudstax.io
Apache License 2.0
209 stars 20 forks source link

managerserver fails to start if the cluster name is not in lowercase #5

Closed jazzl0ver closed 6 years ago

jazzl0ver commented 6 years ago
I1124 15:39:09.383539       1 route53.go:133] zone is not for domain FireCamp-UAT-firecamp.com zone {
  CallerReference: "FireCamp-Route53H-1TC3D958X5KBG",
  Config: {
    PrivateZone: true
  },
  Id: "/hostedzone/ABCD",
  Name: "firecamp-uat-firecamp.com.",
  ResourceRecordSetCount: 2
} requuid
E1124 15:39:09.383573       1 route53.go:52] CreateHostedZone error DomainNotFound domain FireCamp-UAT-firecamp.com vpc vpc-0000000 us-east-1 requuid
E1124 15:39:09.383587       1 server_start.go:49] GetOrCreateHostedZoneIDByName error DomainNotFound domain FireCamp-UAT-firecamp.com vpcID vpc-000000
F1124 15:39:09.383596       1 main.go:171] StartServer error DomainNotFound
JuniusLuo commented 6 years ago

@jazzl0ver thanks for reporting the issue! yes, it is a bug. route53 uses lowercase. will add a fix.

JuniusLuo commented 6 years ago

This issue is a more general issue. The dns service such as AWS Route53 does not distinguish the upper case and lower case. For example, MyService1.FireCamp-UAT-firecamp.com is the same with myservice1.firecamp-uat-firecamp.com.

If cluster FireCamp-UAT exists, the creation of cluster firecamp-uat in the same VPC will be rejected.

If the names of 2 services in one cluster have the same letters (one is lower case, the other is upper case), they will share the same dns record. AWS ECS treats them as 2 different services. Docker Swarm rejects the second service creation. We will follow Docker Swarm to treat them as the same service. The second service creation will be rejected.

cloudstax commented 6 years ago

The fix is committed to master. The next release will include it. Please let us know if you hit any issue. Thanks!