diff --git a/app/deploy.py b/app/deploy.py index 18be4559..59fbf41c 100644 --- a/app/deploy.py +++ b/app/deploy.py @@ -38,8 +38,9 @@ from app.deployment_create import setup as deployment_setup @click.option("--exclude", help="don\'t start these components") @click.option("--env-file", help="env file to be used") @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 -def command(ctx, include, exclude, env_file, cluster): +def command(ctx, include, exclude, env_file, cluster, deploy_to): '''deploy a stack''' # 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: 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 -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) # 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) return DeployCommandContext(stack, cluster_context, deployer) diff --git a/app/deployer_factory.py b/app/deployer_factory.py index 7a1bca2a..45c54ecd 100644 --- a/app/deployer_factory.py +++ b/app/deployer_factory.py @@ -18,7 +18,9 @@ from app.deploy_docker import DockerDeployer 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) - else: + elif type == "k8s": return K8sDeployer(compose_files, compose_project_name, compose_env_file) + else: + print(f"ERROR: deploy-to {type} is not valid") diff --git a/app/deployment.py b/app/deployment.py index aeabf61c..c9c2bb98 100644 --- a/app/deployment.py +++ b/app/deployment.py @@ -62,7 +62,7 @@ def make_deploy_context(ctx): stack_file_path = ctx.obj.get_stack_file() env_file = ctx.obj.get_env_file() 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()