diff --git a/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py b/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py index 4e57659d..24a529c2 100644 --- a/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py +++ b/stack_orchestrator/deploy/webapp/deploy_webapp_from_registry.py @@ -54,6 +54,7 @@ def process_app_deployment_request( deployment_record_namespace, dns_record_namespace, default_dns_suffix, + dns_value, deployment_parent_dir, kube_config, image_registry, @@ -251,6 +252,7 @@ def process_app_deployment_request( dns_record, dns_lrn, deployment_dir, + dns_value, app_deployment_request, webapp_deployer_record, logger, @@ -304,6 +306,7 @@ def dump_known_requests(filename, requests, status="SEEN"): help="How to handle requests with an FQDN: prohibit, allow, preexisting", default="prohibit", ) +@click.option("--ip", help="IP address of the k8s deployment (to be set in DNS record)", default=None) @click.option("--record-namespace-dns", help="eg, lrn://laconic/dns", required=True) @click.option( "--record-namespace-deployments", @@ -381,6 +384,7 @@ def command( # noqa: C901 only_update_state, dns_suffix, fqdn_policy, + ip, record_namespace_dns, record_namespace_deployments, dry_run, @@ -429,6 +433,13 @@ def command( # noqa: C901 ) sys.exit(2) + if fqdn_policy == "allow" and not ip: + print( + "--ip is required with 'allow' fqdn-policy", + file=sys.stderr, + ) + sys.exit(2) + tempdir = tempfile.mkdtemp() gpg = gnupg.GPG(gnupghome=tempdir) @@ -665,6 +676,7 @@ def command( # noqa: C901 record_namespace_deployments, record_namespace_dns, dns_suffix, + ip, os.path.abspath(deployment_parent_dir), kube_config, image_registry, diff --git a/stack_orchestrator/deploy/webapp/util.py b/stack_orchestrator/deploy/webapp/util.py index eebdb23c..991dd249 100644 --- a/stack_orchestrator/deploy/webapp/util.py +++ b/stack_orchestrator/deploy/webapp/util.py @@ -689,6 +689,7 @@ def publish_deployment( dns_record, dns_lrn, deployment_dir, + dns_value=None, app_deployment_request=None, webapp_deployer_record=None, logger=None, @@ -721,6 +722,8 @@ def publish_deployment( } if app_deployment_request: new_dns_record["record"]["request"] = app_deployment_request.id + if dns_value: + new_dns_record["record"]["value"] = dns_value if logger: logger.log("Publishing DnsRecord.")