in cli/src/pcluster/templates/awsbatch_builder.py [0:0]
def _add_code_build_docker_image_builder_project(self):
timestamp = f"{datetime.utcnow().strftime('%Y%m%d%H%M')}"
log_group_name = (
f"{CW_LOG_GROUP_NAME_PREFIX}codebuild/{self.stack_name}-CodeBuildDockerImageBuilderProject-{timestamp}"
)
log_group = logs.CfnLogGroup(
self.stack_scope,
"PclusterCodeBuildLogGroup",
log_group_name=log_group_name,
retention_in_days=get_cloud_watch_logs_retention_days(self.config),
)
log_group.cfn_options.deletion_policy = get_log_group_deletion_policy(self.config)
return codebuild.CfnProject(
self.stack_scope,
"PclusterCodeBuildDockerImageBuilderProj",
artifacts=codebuild.CfnProject.ArtifactsProperty(type="NO_ARTIFACTS"),
environment=codebuild.CfnProject.EnvironmentProperty(
compute_type=(
"BUILD_GENERAL1_LARGE" if self._condition_use_arm_code_build_image() else "BUILD_GENERAL1_SMALL"
),
environment_variables=[
codebuild.CfnProject.EnvironmentVariableProperty(
name="AWS_REGION",
value=self._stack_region,
),
codebuild.CfnProject.EnvironmentVariableProperty(
name="AWS_ACCOUNT_ID",
value=self._stack_account,
),
codebuild.CfnProject.EnvironmentVariableProperty(
name="IMAGE_REPO_NAME",
value=self._docker_images_repo.ref,
),
codebuild.CfnProject.EnvironmentVariableProperty(
name="IMAGE",
value=self.config.image.os,
),
codebuild.CfnProject.EnvironmentVariableProperty(
name="NOTIFICATION_URL",
value=self._docker_build_wait_condition_handle.ref,
),
],
image=(
"aws/codebuild/amazonlinux2-aarch64-standard:2.0"
if self._condition_use_arm_code_build_image()
else "aws/codebuild/amazonlinux2-x86_64-standard:4.0"
),
type="ARM_CONTAINER" if self._condition_use_arm_code_build_image() else "LINUX_CONTAINER",
privileged_mode=True,
),
name=f"pcluster-{self.stack_name}-build-docker-images-project",
service_role=self._code_build_role.attr_arn,
source=codebuild.CfnProject.SourceProperty(
location=f"{self.bucket.name}/{self.bucket.artifact_directory}"
"/custom_resources/scheduler_resources.zip",
type="S3",
),
logs_config=codebuild.CfnProject.LogsConfigProperty(
cloud_watch_logs=codebuild.CfnProject.CloudWatchLogsConfigProperty(
group_name=log_group_name, status="ENABLED"
)
),
)