From 35f64fd6863b2346a592828b2f854db9f2b7635f Mon Sep 17 00:00:00 2001 From: malachi-constant Date: Tue, 14 Nov 2023 16:11:56 -0500 Subject: [PATCH 1/2] feat: Add additional compute types for CodeBuild --- seedfarmer/models/_deploy_spec.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/seedfarmer/models/_deploy_spec.py b/seedfarmer/models/_deploy_spec.py index f954b134..29cd25d3 100644 --- a/seedfarmer/models/_deploy_spec.py +++ b/seedfarmer/models/_deploy_spec.py @@ -23,6 +23,11 @@ class BuildType(Enum): BUILD_GENERAL1_MEDIUM = "BUILD_GENERAL1_MEDIUM" BUILD_GENERAL1_LARGE = "BUILD_GENERAL1_LARGE" BUILD_GENERAL1_2XLARGE = "BUILD_GENERAL1_2XLARGE" + BUILD_LAMBDA_1GB = "BUILD_LAMBDA_1GB" + BUILD_LAMBDA_2GB = "BUILD_LAMBDA_2GB" + BUILD_LAMBDA_4GB = "BUILD_LAMBDA_4GB" + BUILD_LAMBDA_8GB = "BUILD_LAMBDA_8GB" + BUILD_LAMBDA_10GB = "BUILD_LAMBDA_10GB" class BuildPhase(CamelModel): From 7d79f8143cc5331cfd1bb08dd7c43ac52993221b Mon Sep 17 00:00:00 2001 From: malachi-constant Date: Tue, 21 Nov 2023 11:27:26 -0800 Subject: [PATCH 2/2] adding environment_mode --- seedfarmer/commands/_module_commands.py | 5 +++++ seedfarmer/models/_deploy_spec.py | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/seedfarmer/commands/_module_commands.py b/seedfarmer/commands/_module_commands.py index df52fe6e..6bb605c9 100644 --- a/seedfarmer/commands/_module_commands.py +++ b/seedfarmer/commands/_module_commands.py @@ -152,6 +152,7 @@ def deploy_module( extra_post_build_commands=["cd module/"] + _phases.post_build.commands + md5_put + metadata_put, extra_env_vars=env_vars, codebuild_compute_type=module_manifest.deploy_spec.build_type, + codebuild_environment_type=module_manifest.deploy_spec.environment_type, codebuild_role_name=module_role_name, codebuild_image=module_manifest.codebuild_image if module_manifest.codebuild_image is not None @@ -244,6 +245,7 @@ def destroy_module( extra_post_build_commands=["cd module/"] + _phases.post_build.commands + remove_ssm, extra_env_vars=env_vars, codebuild_compute_type=module_manifest.deploy_spec.build_type, + codebuild_environment_type=module_manifest.deploy_spec.environment_type, codebuild_role_name=module_role_name, codebuild_image=module_manifest.codebuild_image if module_manifest.codebuild_image is not None @@ -284,6 +286,7 @@ def _execute_module_commands( extra_post_build_commands: Optional[List[str]] = None, extra_env_vars: Optional[Dict[str, Any]] = None, codebuild_compute_type: Optional[str] = None, + codebuild_environment_type: Optional[str] = None, codebuild_role_name: Optional[str] = None, codebuild_image: Optional[str] = None, ) -> Tuple[str, Optional[Dict[str, str]]]: @@ -313,6 +316,7 @@ def _session_getter() -> Session: codebuild_image=codebuild_image, bundle_id=f"{deployment_name}-{group_name}-{module_manifest_name}", codebuild_compute_type=codebuild_compute_type, + codebuild_environment_type=codebuild_environment_type, extra_files=extra_file_bundle, boto3_session=session_getter, ) @@ -331,6 +335,7 @@ def _execute_module_commands( extra_post_build_commands: Optional[List[str]] = None, extra_env_vars: Optional[Dict[str, Any]] = None, codebuild_compute_type: Optional[str] = None, + codebuild_environment_type: Optional[str] = None, ) -> str: deploy_info = { "aws_region": os.environ.get("AWS_DEFAULT_REGION"), diff --git a/seedfarmer/models/_deploy_spec.py b/seedfarmer/models/_deploy_spec.py index 29cd25d3..755ecf6b 100644 --- a/seedfarmer/models/_deploy_spec.py +++ b/seedfarmer/models/_deploy_spec.py @@ -30,6 +30,15 @@ class BuildType(Enum): BUILD_LAMBDA_10GB = "BUILD_LAMBDA_10GB" +class EnvironmentType(Enum): + ARM_CONTAINER = "ARM_CONTAINER" + LINUX_CONTAINER = "LINUX_CONTAINER" + LINUX_GPU_CONTAINER = "LINUX_GPU_CONTAINER" + WINDOWS_SERVER_2019_CONTAINER = "WINDOWS_SERVER_2019_CONTAINER" + ARM_LAMBDA_CONTAINER = "ARM_LAMBDA_CONTAINER" + LINUX_LAMBDA_CONTAINER = "LINUX_LAMBDA_CONTAINER" + + class BuildPhase(CamelModel): """ BuildPhase @@ -74,12 +83,24 @@ class DeploySpec(CamelModel): deploy: Optional[ExecutionType] = None destroy: Optional[ExecutionType] = None build_type: Optional[str] = None + environment_type: Optional[str] = None publish_generic_env_variables: Optional[bool] = False def __init__(self, **data: Any) -> None: super().__init__(**data) + import logging + + _logger: logging.Logger = logging.getLogger(__name__) + _logger.debug("LUCAS DEBUG") + _logger.debug(data.keys()) + _logger.debug(data["environment_type"]) if data.get("build_type"): chk = str(data["build_type"]).upper() self.build_type = chk if chk in BuildType.__members__.keys() else BuildType.BUILD_GENERAL1_SMALL.value else: self.build_type = BuildType.BUILD_GENERAL1_SMALL.value + if data.get("environment_type"): + chk = str(data["environment_type"]).upper() + _logger.debug(f"LUCAS DEBUG: {chk}") + _logger.debug(f"LUCAS DEBUG: {EnvironmentType.__members__.keys()}") + self.environment_type = chk if chk in EnvironmentType.__members__.keys() else None