Source code for ecs_composex.compute.compute_stack

#  -*- coding: utf-8 -*-
# SPDX-License-Identifier: MPL-2.0
# Copyright 2020-2021 John Mille <john@compose-x.io>

"""
Module to create the compute resources, if so chosen, the SpotFleet / OnDemand instances to go with it.

The SpotFleet and OnDemand instances are optional, but the LaunchTemplate gets created so that if
for testing one would wish to run a new EC2 instance, you can simply do it from the launch template.
"""

from ecs_composex.common.stacks import ComposeXStack
from ecs_composex.compute.compute_template import generate_compute_template


[docs]def create_compute_stack(settings): """ Function entrypoint for CLI. :param ecs_composex.common.settings.ComposeXSettings settings: The settings for execution :return: cluster template :rtype: troposphere.Template """ template = generate_compute_template(settings) return template
[docs]class ComputeStack(ComposeXStack): """ Class to handle the EC2 compute creation. """ def __init__(self, title, settings, parameters): """ Method to init the ComputeStack :param ecs_composex.common.settings.ComposeXSettings settings: The settings for execution """ template = generate_compute_template(settings) super().__init__(title, stack_template=template, stack_parameters=parameters)