skip to Main Content

I did pore through other similar questions and found answers. I am still having a situation that is not answered and I am not able to comment on those posts to seek clarifications. Thus this new question.

Let me explain my situation…

  • I have a GCP Project and enabled AppEngine on the same.
  • I have setup 3 services: ‘default’, ‘api’ and ‘ui’.
  • I have deployed apps on all the 3 services and they are all being served through their appspot urls without any issues.

Now I want to setup routing using own domain, purchased from GoDaddy. The schema looks like the following:

  • www.my-domain.com -> ‘default’
  • rest.app.my-domain.com -> ‘api’
  • ui.app.my-domain.com -> ‘ui’

I have the dispatch.yaml to setup the routing rules and I can see the same properly defined in the ‘Services’ screen. No problems there… The problem is in defining the custom domain mappings for these services.

  • For the ‘default’ service, it was easy. GAE identified GoDaddy and requested A & AAAA records for managed security. And then CNAME ‘www’ pointing to ‘ghs.googlehosted.com’. Done and all went well.
  • Now, for the other services, GAE is asking for the same set of A, AAAA and CNAME records.

Here is the problem. I cannot setup multiple CNAME records pointing to the same value (‘ghs.googlehosted.com’). The GoDaddy cPanel/DNS Manager Tool does not even allow adding such records. I have spoken to their support and they confirm that their tool is restricted ti ICAAN policies. So multiple CNAME records is out of question.

As a workaround, I setup a sub-domain pointing to googledomains. I setup ‘app’ as a new Zone in ‘Cloud DNS’ in m GCP Project. All name servers are placed in master DNS zone in my GoDaddy. This could allow me to create CNAME record for ‘app’ in googledomains, atleast theoretically. But GAE Project Settings does not recognise the domain. Its forcing me to make the CNAME records in GoDaddy under the master zone. Not sure how Google doesnt understand the ICAAN policies!! So this option walked into a wall too.

Then I read about the wildcard subdomains. GoDaddy documentation describes the support for this but limited to a specific IP (so only A record). However, GAE needs the value ‘ghs.googlehosted.com’ and that means I must create a CNAME record only. There are many discussions on this; some saying this will not work and others claiming this works.

This is quite literally my last option and I would like to know how to make this work. If there is any other way to get this setup working, it would save me a lot of time and trouble. I am a developer and all this infra work is just such a hog on my productive bandwidth.

Thanking you in advance.

2

Answers


  1. Chosen as BEST ANSWER

    Finally, the way I have resolved this is to define a single wildcard CNAME in GoDaddy pointing to 'ghs.googlehosted.com' and registered all subdomains as new domain names (actually with different names) in googledomains now. The latter is an alternate fail-safety to ensure my clients can connect. I am now waiting for the current subscription to run out and move away from GoDaddy after. Right now, the pricing I pay GoDaddy is too much compared to Google Domains and for the level of support quality from GoDaddy it is really not justified.


  2. So, I’ve worked on this for some time and I believe that there is something odd here.

    I tried this with a go daddy domain and 2 app engine services. So the steps that I followed are explained next:

    1) Go to App engine and on settings/custom domains add the custom domains you’d like to have (with the subdomains in this case)

    2) On go daddy you need to go to your domain and admin your DNS records on your domain.

    3) Add The Cnames registers with your sub domain pointing to ghs.googlehosted.com

    4) deploy your dispatch.yaml

    The thing that I don’t understand is why you say that is impossible to do the step 3 as it has never caused issues when I tried to do this. Could you specify how are you doing the third step in go daddy?

    Additionally, I believe that this same information is better explained on this documentation Is just that I don’t get why is it failing on your side.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search