Skip to content

Commit

Permalink
Add option to recreate deployments rather than update them. (#920)
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas E Lackey committed Aug 14, 2024
1 parent 5c275aa commit 952389a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ def process_app_deployment_request(
image_registry,
force_rebuild,
fqdn_policy,
recreate_on_deploy,
logger
):
logger.log("BEGIN - process_app_deployment_request")
Expand Down Expand Up @@ -165,6 +166,7 @@ def process_app_deployment_request(
deploy_to_k8s(
deployment_record,
deployment_dir,
recreate_on_deploy,
logger
)

Expand Down Expand Up @@ -220,12 +222,13 @@ def dump_known_requests(filename, requests, status="SEEN"):
@click.option("--include-tags", help="Only include requests with matching tags (comma-separated).", default="")
@click.option("--exclude-tags", help="Exclude requests with matching tags (comma-separated).", default="")
@click.option("--force-rebuild", help="Rebuild even if the image already exists.", is_flag=True)
@click.option("--recreate-on-deploy", help="Remove and recreate deployments instead of updating them.", is_flag=True)
@click.option("--log-dir", help="Output build/deployment logs to directory.", default=None)
@click.pass_context
def command(ctx, kube_config, laconic_config, image_registry, deployment_parent_dir, # noqa: C901
request_id, discover, state_file, only_update_state,
dns_suffix, fqdn_policy, record_namespace_dns, record_namespace_deployments, dry_run,
include_tags, exclude_tags, force_rebuild, log_dir):
include_tags, exclude_tags, force_rebuild, recreate_on_deploy, log_dir):
if request_id and discover:
print("Cannot specify both --request-id and --discover", file=sys.stderr)
sys.exit(2)
Expand Down Expand Up @@ -374,6 +377,7 @@ def command(ctx, kube_config, laconic_config, image_registry, deployment_parent_
image_registry,
force_rebuild,
fqdn_policy,
recreate_on_deploy,
logger
)
status = "DEPLOYED"
Expand Down
25 changes: 16 additions & 9 deletions stack_orchestrator/deploy/webapp/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -318,17 +318,24 @@ def push_container_image(deployment_dir, logger):
logger.log("Finished pushing images.")


def deploy_to_k8s(deploy_record, deployment_dir, logger):
if not deploy_record:
command = "start"
def deploy_to_k8s(deploy_record, deployment_dir, recreate, logger):
logger.log("Deploying to k8s ...")

if recreate:
commands_to_run = ["stop", "start"]
else:
command = "update"
if not deploy_record:
commands_to_run = ["start"]
else:
commands_to_run = ["update"]

for command in commands_to_run:
logger.log(f"Running {command} command on deployment dir: {deployment_dir}")
result = subprocess.run([sys.argv[0], "deployment", "--dir", deployment_dir, command],
stdout=logger.file, stderr=logger.file)
result.check_returncode()
logger.log(f"Finished {command} command on deployment dir: {deployment_dir}")

logger.log("Deploying to k8s ...")
logger.log(f"Running {command} command on deployment dir: {deployment_dir}")
result = subprocess.run([sys.argv[0], "deployment", "--dir", deployment_dir, command],
stdout=logger.file, stderr=logger.file)
result.check_returncode()
logger.log("Finished deploying to k8s.")


Expand Down

0 comments on commit 952389a

Please sign in to comment.