@@ -64,16 +64,16 @@ def collect(
6464 kubernetes_token ,
6565 environment_distribution ,
6666 project_domain ,
67- domain_prefix_dev ,
68- domain_prefix_stage ,
69- domain_prefix_prod ,
70- domain_prefix_monitoring ,
67+ subdomain_dev ,
68+ subdomain_stage ,
69+ subdomain_prod ,
70+ subdomain_monitoring ,
7171 project_url_dev ,
7272 project_url_stage ,
7373 project_url_prod ,
74- project_url_monitoring ,
7574 letsencrypt_certificate_email ,
7675 digitalocean_domain_create ,
76+ digitalocean_dns_records_create ,
7777 digitalocean_k8s_cluster_region ,
7878 digitalocean_database_cluster_region ,
7979 digitalocean_database_cluster_node_size ,
@@ -162,42 +162,40 @@ def collect(
162162 )
163163 (
164164 project_domain ,
165- domain_prefix_dev ,
166- domain_prefix_stage ,
167- domain_prefix_prod ,
168- domain_prefix_monitoring ,
165+ subdomain_dev ,
166+ subdomain_stage ,
167+ subdomain_prod ,
168+ subdomain_monitoring ,
169169 project_url_dev ,
170170 project_url_stage ,
171171 project_url_prod ,
172- project_url_monitoring ,
173172 letsencrypt_certificate_email ,
174- ) = clean_project_urls (
175- deployment_type ,
173+ ) = clean_domains (
176174 project_slug ,
177175 project_domain ,
178176 use_monitoring ,
179- domain_prefix_dev ,
180- domain_prefix_stage ,
181- domain_prefix_prod ,
182- domain_prefix_monitoring ,
177+ subdomain_dev ,
178+ subdomain_stage ,
179+ subdomain_prod ,
180+ subdomain_monitoring ,
183181 project_url_dev ,
184182 project_url_stage ,
185183 project_url_prod ,
186- project_url_monitoring ,
187184 letsencrypt_certificate_email ,
188185 )
189186 use_redis = click .confirm (warning ("Do you want to use Redis?" ), default = False )
190187 if digitalocean_enabled :
191188 (
192189 digitalocean_domain_create ,
190+ digitalocean_dns_records_create ,
193191 digitalocean_k8s_cluster_region ,
194192 digitalocean_database_cluster_region ,
195193 digitalocean_database_cluster_node_size ,
196194 digitalocean_redis_cluster_region ,
197195 digitalocean_redis_cluster_node_size ,
198196 ) = clean_digitalocean_options (
199- project_domain ,
200197 digitalocean_domain_create ,
198+ digitalocean_dns_records_create ,
201199 digitalocean_k8s_cluster_region ,
202200 digitalocean_database_cluster_region ,
203201 digitalocean_database_cluster_node_size ,
@@ -303,16 +301,16 @@ def collect(
303301 "kubernetes_token" : kubernetes_token ,
304302 "environment_distribution" : environment_distribution ,
305303 "project_domain" : project_domain ,
306- "domain_prefix_dev " : domain_prefix_dev ,
307- "domain_prefix_stage " : domain_prefix_stage ,
308- "domain_prefix_prod " : domain_prefix_prod ,
309- "domain_prefix_monitoring " : domain_prefix_monitoring ,
304+ "subdomain_dev " : subdomain_dev ,
305+ "subdomain_stage " : subdomain_stage ,
306+ "subdomain_prod " : subdomain_prod ,
307+ "subdomain_monitoring " : subdomain_monitoring ,
310308 "project_url_dev" : project_url_dev ,
311309 "project_url_stage" : project_url_stage ,
312310 "project_url_prod" : project_url_prod ,
313- "project_url_monitoring" : project_url_monitoring ,
314311 "letsencrypt_certificate_email" : letsencrypt_certificate_email ,
315312 "digitalocean_domain_create" : digitalocean_domain_create ,
313+ "digitalocean_dns_records_create" : digitalocean_dns_records_create ,
316314 "digitalocean_k8s_cluster_region" : digitalocean_k8s_cluster_region ,
317315 "digitalocean_database_cluster_region" : digitalocean_database_cluster_region ,
318316 "digitalocean_database_cluster_node_size" : (
@@ -584,112 +582,53 @@ def clean_kubernetes_credentials(
584582 return kubernetes_cluster_ca_certificate , kubernetes_host , kubernetes_token
585583
586584
587- def clean_project_domain (project_domain ):
588- """Return the project domain."""
589- return (
590- project_domain
591- or (
592- project_domain is None
593- and click .confirm (
594- warning (
595- "Do you want to configure DNS records? "
596- "(BEWARE: NS must be set accordingly)"
597- )
598- )
599- and validate_or_prompt_domain ("Project domain" , project_domain )
600- )
601- or None
602- )
603-
604-
605- def clean_project_urls (
606- deployment_type ,
585+ def clean_domains (
607586 project_slug ,
608587 project_domain ,
609588 use_monitoring ,
610- domain_prefix_dev ,
611- domain_prefix_stage ,
612- domain_prefix_prod ,
613- domain_prefix_monitoring ,
589+ subdomain_dev ,
590+ subdomain_stage ,
591+ subdomain_prod ,
592+ subdomain_monitoring ,
614593 project_url_dev ,
615594 project_url_stage ,
616595 project_url_prod ,
617- project_url_monitoring ,
618596 letsencrypt_certificate_email ,
619597):
620598 """Return project URLs."""
621- if deployment_type == DEPLOYMENT_TYPE_DIGITALOCEAN and (
622- project_domain := clean_project_domain (project_domain )
623- ):
624- domain_prefix_dev = domain_prefix_dev or click .prompt (
625- "Development domain prefix" , default = "dev"
626- )
627- project_url_dev = f"https://{ domain_prefix_dev } .{ project_domain } "
628- domain_prefix_stage = domain_prefix_stage or click .prompt (
629- "Staging domain prefix" , default = "stage"
630- )
631- project_url_stage = f"https://{ domain_prefix_stage } .{ project_domain } "
632- domain_prefix_prod = domain_prefix_prod or click .prompt (
633- "Production domain prefix" , default = "www"
599+ project_domain = validate_or_prompt_domain (
600+ "Project domain" , project_domain , default = f"{ project_slug } .com"
601+ )
602+ subdomain_dev = subdomain_dev or click .prompt (
603+ "Development domain prefix" , default = "dev"
604+ )
605+ project_url_dev = f"https://{ subdomain_dev } .{ project_domain } "
606+ subdomain_stage = subdomain_stage or click .prompt (
607+ "Staging domain prefix" , default = "stage"
608+ )
609+ project_url_stage = f"https://{ subdomain_stage } .{ project_domain } "
610+ subdomain_prod = subdomain_prod or click .prompt (
611+ "Production domain prefix" , default = "www"
612+ )
613+ project_url_prod = f"https://{ subdomain_prod } .{ project_domain } "
614+ if use_monitoring :
615+ subdomain_monitoring = subdomain_monitoring or click .prompt (
616+ "Monitorng domain prefix" , default = "logs"
634617 )
635- project_url_prod = f"https://{ domain_prefix_prod } .{ project_domain } "
636- if use_monitoring :
637- domain_prefix_monitoring = domain_prefix_monitoring or click .prompt (
638- "Monitorng domain prefix" , default = "logs"
639- )
640- project_url_monitoring = (
641- f"https://{ domain_prefix_monitoring } .{ project_domain } "
642- )
643- else :
644- domain_prefix_monitoring = None
645- project_url_monitoring = None
646- letsencrypt_certificate_email = None
647618 else :
648- project_domain = None
649- domain_prefix_dev = None
650- domain_prefix_stage = None
651- domain_prefix_prod = None
652- domain_prefix_monitoring = None
653- project_url_dev = validate_or_prompt_url (
654- "Development environment complete URL" ,
655- project_url_dev or None ,
656- default = f"https://dev.{ project_slug } .com" ,
657- required = False ,
658- )
659- project_url_stage = validate_or_prompt_url (
660- "Staging environment complete URL" ,
661- project_url_stage or None ,
662- default = f"https://stage.{ project_slug } .com" ,
663- required = False ,
664- )
665- project_url_prod = validate_or_prompt_url (
666- "Production environment complete URL" ,
667- project_url_prod or None ,
668- default = f"https://www.{ project_slug } .com" ,
669- required = False ,
670- )
671- if use_monitoring :
672- project_url_monitoring = validate_or_prompt_url (
673- "Monitoring complete URL" ,
674- project_url_monitoring or None ,
675- default = f"https://logs.{ project_slug } .com" ,
676- required = False ,
677- )
678- else :
679- project_url_monitoring = None
680- letsencrypt_certificate_email = clean_letsencrypt_certificate_email (
681- letsencrypt_certificate_email
682- )
619+ subdomain_monitoring = None
620+ letsencrypt_certificate_email = clean_letsencrypt_certificate_email (
621+ letsencrypt_certificate_email
622+ )
683623 return (
684624 project_domain ,
685- domain_prefix_dev ,
686- domain_prefix_stage ,
687- domain_prefix_prod ,
688- domain_prefix_monitoring ,
625+ subdomain_dev ,
626+ subdomain_stage ,
627+ subdomain_prod ,
628+ subdomain_monitoring ,
689629 project_url_dev ,
690630 project_url_stage ,
691631 project_url_prod ,
692- project_url_monitoring ,
693632 letsencrypt_certificate_email ,
694633 )
695634
@@ -784,8 +723,8 @@ def clean_frontend_sentry_dsn(frontend_type, frontend_sentry_dsn):
784723
785724
786725def clean_digitalocean_options (
787- project_domain ,
788726 digitalocean_domain_create ,
727+ digitalocean_dns_records_create ,
789728 digitalocean_k8s_cluster_region ,
790729 digitalocean_database_cluster_region ,
791730 digitalocean_database_cluster_node_size ,
@@ -795,17 +734,22 @@ def clean_digitalocean_options(
795734):
796735 """Return DigitalOcean configuration options."""
797736 # TODO: ask these settings for each stack
798- if project_domain :
799- digitalocean_domain_create = (
800- digitalocean_domain_create
801- if digitalocean_domain_create is not None
802- else click .confirm (
803- f"Do you want to create DigitalOcean domain '{ project_domain } '?" ,
804- default = True ,
805- )
737+ digitalocean_domain_create = (
738+ digitalocean_domain_create
739+ if digitalocean_domain_create is not None
740+ else click .confirm (
741+ "Do you want to create the DigitalOcean domain?" ,
742+ default = True ,
806743 )
807- else :
808- digitalocean_domain_create = None
744+ )
745+ digitalocean_dns_records_create = (
746+ digitalocean_dns_records_create
747+ if digitalocean_dns_records_create is not None
748+ else click .confirm (
749+ "Do you want to create DigitalOcean DNS records?" ,
750+ default = True ,
751+ )
752+ )
809753 digitalocean_k8s_cluster_region = digitalocean_k8s_cluster_region or click .prompt (
810754 "Kubernetes cluster DigitalOcean region" , default = "fra1"
811755 )
@@ -836,6 +780,7 @@ def clean_digitalocean_options(
836780 )
837781 return (
838782 digitalocean_domain_create ,
783+ digitalocean_dns_records_create ,
839784 digitalocean_k8s_cluster_region ,
840785 digitalocean_database_cluster_region ,
841786 digitalocean_database_cluster_node_size ,
0 commit comments