Add deployer switch

This commit is contained in:
David Boreham 2023-10-23 21:01:38 -06:00
parent bfc668d64d
commit ada1eff241
3 changed files with 10 additions and 7 deletions

View File

@ -38,8 +38,9 @@ from app.deployment_create import setup as deployment_setup
@click.option("--exclude", help="don\'t start these components") @click.option("--exclude", help="don\'t start these components")
@click.option("--env-file", help="env file to be used") @click.option("--env-file", help="env file to be used")
@click.option("--cluster", help="specify a non-default cluster name") @click.option("--cluster", help="specify a non-default cluster name")
@click.option("--deploy-to", help="cluster system to deploy to (compose or k8s)")
@click.pass_context @click.pass_context
def command(ctx, include, exclude, env_file, cluster): def command(ctx, include, exclude, env_file, cluster, deploy_to):
'''deploy a stack''' '''deploy a stack'''
# Although in theory for some subcommands (e.g. deploy create) the stack can be inferred, # Although in theory for some subcommands (e.g. deploy create) the stack can be inferred,
@ -51,14 +52,14 @@ def command(ctx, include, exclude, env_file, cluster):
if ctx.parent.obj.debug: if ctx.parent.obj.debug:
print(f"ctx.parent.obj: {ctx.parent.obj}") print(f"ctx.parent.obj: {ctx.parent.obj}")
ctx.obj = create_deploy_context(global_options2(ctx), stack, include, exclude, cluster, env_file) ctx.obj = create_deploy_context(global_options2(ctx), stack, include, exclude, cluster, env_file, deploy_to)
# Subcommand is executed now, by the magic of click # Subcommand is executed now, by the magic of click
def create_deploy_context(global_context, stack, include, exclude, cluster, env_file): def create_deploy_context(global_context, stack, include, exclude, cluster, env_file, deploy_to):
cluster_context = _make_cluster_context(global_context, stack, include, exclude, cluster, env_file) cluster_context = _make_cluster_context(global_context, stack, include, exclude, cluster, env_file)
# See: https://gabrieldemarmiesse.github.io/python-on-whales/sub-commands/compose/ # See: https://gabrieldemarmiesse.github.io/python-on-whales/sub-commands/compose/
deployer = getDeployer("docker", compose_files=cluster_context.compose_files, compose_project_name=cluster_context.cluster, deployer = getDeployer(deploy_to, compose_files=cluster_context.compose_files, compose_project_name=cluster_context.cluster,
compose_env_file=cluster_context.env_file) compose_env_file=cluster_context.env_file)
return DeployCommandContext(stack, cluster_context, deployer) return DeployCommandContext(stack, cluster_context, deployer)

View File

@ -18,7 +18,9 @@ from app.deploy_docker import DockerDeployer
def getDeployer(type, compose_files, compose_project_name, compose_env_file): def getDeployer(type, compose_files, compose_project_name, compose_env_file):
if type == "docker": if type == "compose" or type is None:
return DockerDeployer(compose_files, compose_project_name, compose_env_file) return DockerDeployer(compose_files, compose_project_name, compose_env_file)
else: elif type == "k8s":
return K8sDeployer(compose_files, compose_project_name, compose_env_file) return K8sDeployer(compose_files, compose_project_name, compose_env_file)
else:
print(f"ERROR: deploy-to {type} is not valid")

View File

@ -62,7 +62,7 @@ def make_deploy_context(ctx):
stack_file_path = ctx.obj.get_stack_file() stack_file_path = ctx.obj.get_stack_file()
env_file = ctx.obj.get_env_file() env_file = ctx.obj.get_env_file()
cluster_name = ctx.obj.get_cluster_name() cluster_name = ctx.obj.get_cluster_name()
return create_deploy_context(ctx.parent.parent.obj, stack_file_path, None, None, cluster_name, env_file) return create_deploy_context(ctx.parent.parent.obj, stack_file_path, None, None, cluster_name, env_file, deploy_to)
@command.command() @command.command()