def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        self.airflow_webserver_repo = ecr.Repository(
            self,
            "airflow_webserver_repo",
            repository_name="airflow_webserver_cdk",
            removal_policy=core.RemovalPolicy.DESTROY,
        )
        self.airflow_scheduler_repo = ecr.Repository(
            self,
            "airflow_scheduler_repo",
            repository_name="airflow_scheduler_cdk",
            removal_policy=core.RemovalPolicy.DESTROY,
        )
        self.airflow_worker_repo = ecr.Repository(
            self,
            "airflow_worker_repo",
            repository_name="airflow_worker_cdk",
            removal_policy=core.RemovalPolicy.DESTROY,
        )
        self.dbt_repo = ecr.Repository(
            self,
            "dbt_ecr_repository",
            repository_name="dbt_cdk",
            removal_policy=core.RemovalPolicy.DESTROY,
        )
Exemplo n.º 2
0
    def __init__(self, scope: core.Construct, id: str, repo_name: str,
                 **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        ecr.Repository(scope=self, id=id,
                       repository_name=repo_name).grant_pull_push(
                           iam.ServicePrincipal("codebuild.amazonaws.com"))
Exemplo n.º 3
0
 def _create_ecr_repository(self):
     """
     This defines and creates an ECR repository
     where our docker image and containers will
     be stored.
     """
     return ecr.Repository(self, 'ECRRepo')
Exemplo n.º 4
0
    def __init__(self, scope: core.Construct, construct_id: str,
                 **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        repo = ecr.Repository(self, 'MyRepository', repository_name='cdk-repo')
        repo.add_lifecycle_rule(description='Lifecycle rule for cdk-repo',
                                max_image_count=50,
                                rule_priority=1)
Exemplo n.º 5
0
    def __init__(self, scope: core.Construct, id: str, vpc, redis,
                 **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        self.ecr = _ecr.Repository(self, "ecrRepo")

        self.ecs_cluster = _ecs.Cluster(self,
                                        "ecsCluster",
                                        container_insights=True,
                                        vpc=vpc)

        self.task_definition = _ecs.FargateTaskDefinition(self,
                                                          "taskDefinition",
                                                          memory_limit_mib=512,
                                                          cpu=256)

        self.docker_image = _ecr_assets.DockerImageAsset(self,
                                                         "dockerImage",
                                                         directory="./code")

        self.container = self.task_definition.add_container(
            "testContainer",
            image=_ecs.ContainerImage.from_docker_image_asset(
                self.docker_image),
            logging=_ecs.LogDriver.aws_logs(stream_prefix="containerlogs"),
            environment={
                "STAGE": "dev",
                "REDIS_ENDPOINT": redis.attr_configuration_end_point_address
            },
        )

        self.container.add_port_mappings(
            _ecs.PortMapping(container_port=5000, protocol=_ecs.Protocol.TCP))

        self.service = _ecs.FargateService(
            self,
            "fargateService",
            cluster=self.ecs_cluster,
            task_definition=self.task_definition,
            desired_count=3,
            vpc_subnets=_ec2.SubnetSelection(subnets=vpc.private_subnets),
            security_groups=[vpc.sg])

        self.lb = _elbv2.ApplicationLoadBalancer(self,
                                                 "alb",
                                                 vpc=vpc,
                                                 security_group=vpc.sg,
                                                 internet_facing=True)

        listener = self.lb.add_listener("listener", port=80)

        self.target_group = listener.add_targets("fargateTarget",
                                                 port=80,
                                                 targets=[self.service])

        core.CfnOutput(self,
                       "albDnsName",
                       value=self.lb.load_balancer_dns_name)
Exemplo n.º 6
0
    def create_repo(self, name: str, removal_policy, image_count: int = 3):
        repo_name = "_".join(["quakeservices", name])

        repository = ecr.Repository(self,
                                    repo_name,
                                    repository_name=repo_name,
                                    removal_policy=removal_policy)

        repository.add_lifecycle_rule(max_image_count=image_count)
Exemplo n.º 7
0
  def createResources(self, ns):

    # ECR Repository
    self.bentoECR = ecr.Repository(self, "bento-ecr",
        repository_name="{}-ecr-repository".format(ns),
        image_scan_on_push=True)

    # ECR Policy
    self.bentoECR.add_to_resource_policy(self.ecrPolicyStatement)
Exemplo n.º 8
0
    def __init__(self, scope: core.Construct, construct_id: str,
                 **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        self.ecr_repository = ecr.Repository(
            self,
            'Repository',
            repository_name='mythicalmysfits/service',
        )
Exemplo n.º 9
0
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        ecr.Repository(self,
                       "customer-extractor-jobs-repo",
                       repository_name="customer-extractor-job")

        sqs.Queue(self,
                  "customer-extractor-jobs-queue",
                  visibility_timeout=core.Duration.seconds(300))
Exemplo n.º 10
0
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:

        super().__init__(scope, id, **kwargs)

        branch = id.split('-')[-1]
        self.flask = ecr.Repository(
            self,
            'repo4frontend-' + branch,
            repository_name='wiki-frontend-' + branch,
        )
Exemplo n.º 11
0
def create_ecr_repository(scope: core.Construct, stack_name: str):
    return ecr.Repository(
        scope,
        'ecr',
        lifecycle_rules=[
            ecr.LifecycleRule(max_image_age=core.Duration.days(30))
        ],
        removal_policy=core.RemovalPolicy.DESTROY,
        repository_name=stack_name,
    )
Exemplo n.º 12
0
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        cloud_trail = aws_cloudtrail.Trail(self, "Trail")

        self.hello_docker_repo = aws_ecr.Repository(
            self,
            "HelloDocker",
            repository_name="hello-docker",
            lifecycle_rules=[aws_ecr.LifecycleRule(max_image_count=10)],
            removal_policy=core.RemovalPolicy.DESTROY)
        self.hello_docker_repo.on_cloud_trail_image_pushed("ImagePushed")

        self.tweet_ingest_repo = aws_ecr.Repository(
            self,
            "TweetIngest",
            repository_name="tweet-ingest",
            lifecycle_rules=[aws_ecr.LifecycleRule(max_image_count=10)],
            removal_policy=core.RemovalPolicy.DESTROY)
        self.tweet_ingest_repo.on_cloud_trail_image_pushed("ImagePushed")
Exemplo n.º 13
0
 def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
     super().__init__(scope, id, **kwargs)
     self.repository = ecr.Repository(self, "ChatRepo", repository_name="chat-image")
     self.vpc = ec2.Vpc(self, "chat-vpc",
         cidr="10.0.0.0/16",
         subnet_configuration=[{ 
             "cidrMask": 24,
             "name": 'mainApp',
             "subnetType": ec2.SubnetType.PUBLIC
         }] 
     )
Exemplo n.º 14
0
    def __init__(self, scope: core.Construct, id_: str, props,
                 **kwargs) -> None:
        super().__init__(scope, id_, **kwargs)

        namespace = props['namespace']

        ecr_repo = ecr.Repository(self,
                                  id="HtsgetRefServerEcrRepo",
                                  repository_name=namespace,
                                  removal_policy=core.RemovalPolicy.RETAIN)
        self._ecr_repo = ecr_repo
Exemplo n.º 15
0
 def __init__(self, scope: core.Construct, construct_id: str,
              **kwargs) -> None:
     super().__init__(scope, construct_id, **kwargs)
     # Define ECR Registries
     for cdk_id, registry_name in ECR_Private_Registry_List.items():
         aws_ecr.Repository(
             self,
             cdk_id,
             repository_name=registry_name,
             removal_policy=core.RemovalPolicy.DESTROY,
         )
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # Create the ECR Repository
        ecr_repository = ecr.Repository(self,
                                        "ecs-devops-sandbox-repository",
                                        repository_name="ecs-devops-sandbox-repository")

        # Create the ECS Cluster (and VPC)
        vpc = ec2.Vpc(self,
                      "ecs-devops-sandbox-vpc",
                      max_azs=3)
        cluster = ecs.Cluster(self,
                              "ecs-devops-sandbox-cluster",
                              cluster_name="ecs-devops-sandbox-cluster",
                              vpc=vpc)

        # Create the ECS Task Definition with placeholder container (and named Task Execution IAM Role)
        execution_role = iam.Role(self,
                                  "ecs-devops-sandbox-execution-role",
                                  assumed_by=iam.ServicePrincipal("ecs-tasks.amazonaws.com"),
                                  role_name="ecs-devops-sandbox-execution-role")
        execution_role.add_to_policy(iam.PolicyStatement(
            effect=iam.Effect.ALLOW,
            resources=["*"],
            actions=[
                "ecr:GetAuthorizationToken",
                "ecr:BatchCheckLayerAvailability",
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
                ]
        ))
        task_definition = ecs.FargateTaskDefinition(self,
                                                    "ecs-devops-sandbox-task-definition",
                                                    execution_role=execution_role,
                                                    family="ecs-devops-sandbox-task-definition")

        container = task_definition.add_container(
            "ecs-devops-sandbox",
            image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")
        )

        port_mapping = ecs.PortMapping(container_port=5000)
        container.add_port_mappings(port_mapping)


        # Create a load balanced ECS Service
        # Athough this block works, I was not able to
        load_balanced_service = ecs_patterns.ApplicationLoadBalancedFargateService(self, "ecs-devops-sandbox-service",
            cluster=cluster,
            task_definition=task_definition,
            service_name="ecs-devops-sandbox-service")
Exemplo n.º 17
0
    def __init__(self, app: core.App, id: str) -> None:
        super().__init__(app, id)

        repository = ecr.Repository(
            self,
            "ModelStackRepository",
            image_scan_on_push=True,
            repository_name='sagemaker-model-repo'  # must have sagemaker in it
        )

        core.CfnOutput(self, "Output", value=repository.repository_uri)
Exemplo n.º 18
0
    def __init__(self, scope: core.Construct, id: str, props,
                 **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # create an ECR repo to deploy the created image to (defined in build spec)
        ecr_repo = ecr.Repository(self,
                                  id="UmccriseEcrRepo",
                                  repository_name=props['umccrise_ecr_repo'],
                                  removal_policy=core.RemovalPolicy.RETAIN)
        # We assign the repo's arn to a local variable for the Object.
        self._ecr_name = ecr_repo.repository_name
        self._ecr_arn = ecr_repo.repository_arn
Exemplo n.º 19
0
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        ZachRepositoryName = self.__class__.__name__
        ZachRepository = ecr.Repository(self, id=ZachRepositoryName)
        ZachRepository.add_lifecycle_rule(
            max_image_count=100,
            rule_priority=50,
            tag_status=ecr.TagStatus.TAGGED,
            tag_prefix_list=['sit', 'uat', 'dev'])
        ZachRepository.add_lifecycle_rule(
            max_image_age=core.Duration.days(720), rule_priority=100)
        ZachRepository.grant_pull_push(
            iam.Role.from_role_arn(
                self,
                id="EC2FullPrivilege",
                role_arn="arn:aws:iam::098380756085:role/Zach_EC2FullPrivilege"
            ))
        ZachRepository.grant_pull(
            iam.Role.from_role_arn(
                self,
                id="EC2ReadPrivilege",
                role_arn="arn:aws:iam::098380756085:role/Zach_EC2ReadPrivilege"
            ))
        ZachRepositoryEvent = ZachRepository.on_cloud_trail_event(
            id="DockerTrail",
            event_pattern=event.EventPattern(account=[
                self.node.try_get_context("account") or os.getenv('account')
                or '098380756085'
            ],
                                             region=['ap-southeast-1']))

        ZachSNStopic = self.SnsExporter(ZachRepositoryName)
        ZachRepositoryEvent.add_target(eventarget.SnsTopic(topic=ZachSNStopic))

        core.CfnOutput(self,
                       id=ZachRepositoryName + "ARN",
                       value=ZachRepository.repository_arn)
        core.CfnOutput(self,
                       id=ZachRepositoryName + "URI",
                       value=ZachRepository.repository_uri)
        core.CfnOutput(self,
                       id=ZachRepositoryName + "RuleARN",
                       value=ZachRepositoryEvent.rule_arn)
        core.CfnOutput(self,
                       id=ZachRepositoryName + "RuleName",
                       value=ZachRepositoryEvent.rule_name)
        core.CfnOutput(self,
                       id=ZachRepositoryName + "TopicARN",
                       value=ZachSNStopic.topic_arn)
        core.CfnOutput(self,
                       id=ZachRepositoryName + "TopicName",
                       value=ZachSNStopic.topic_name)
Exemplo n.º 20
0
    def create_ecr_component_base_repository(self) -> Resource:
        """コンポーネントを毎回0からビルドすると時間がかかるので、ベースになるイメージを作成

        Returns:
            Resource: ECR
        """
        ecr = aws_ecr.Repository(
            self,
            id=f"{self.stack_name}_{self.component_id}_component_base".lower(),
            repository_name="base." + self.greengrass_component_name,
            removal_policy=RemovalPolicy.DESTROY)
        return ecr
Exemplo n.º 21
0
    def create_ecr_component_repository(self) -> Resource:
        """Greengrassのコンポーネント用にビルドしたdockerイメージを保存するレジストリ

        Returns:
            Resource: ECR
        """
        ecr = aws_ecr.Repository(
            self,
            id=f"{self.stack_name}_{self.component_id}_component".lower(),
            repository_name=self.greengrass_component_name,
            removal_policy=RemovalPolicy.DESTROY)
        return ecr
Exemplo n.º 22
0
    def __init__(self,
                 scope: core.Construct,
                 id: str,
                 UserName="******",
                 **kwargs):
        super().__init__(scope, id, **kwargs)

        self.repositories = {}

        # ecr repo to push docker container into

        self.string_merge = _ecr.Repository(
            self,
            "string_merge",
            repository_name="batch_" + UserName + "/string_merge",
            removal_policy=core.RemovalPolicy.DESTROY)

        self.string_repeat = _ecr.Repository(
            self,
            "string_repeat",
            repository_name="batch_" + UserName + "/string_repeat",
            removal_policy=core.RemovalPolicy.DESTROY)

        self.string_reverse = _ecr.Repository(
            self,
            "string_reverse",
            repository_name="batch_" + UserName + "/string_reverse",
            removal_policy=core.RemovalPolicy.DESTROY)

        self.string_split = _ecr.Repository(
            self,
            "string_split",
            repository_name="batch_" + UserName + "/string_split",
            removal_policy=core.RemovalPolicy.DESTROY)

        self.repositories["string_merge"] = self.string_merge
        self.repositories["string_repeat"] = self.string_repeat
        self.repositories["string_reverse"] = self.string_reverse
        self.repositories["string_split"] = self.string_split
Exemplo n.º 23
0
    def __init__(self, scope: core.Construct, id: str, *, app_env: str,
                 **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        params = {
            'repository_name': 'staff-repository',
            'removal_policy': core.RemovalPolicy.DESTROY,
        }
        repository = ecr.Repository(self, 'open-repository', **params)
        repository.add_lifecycle_rule(tag_prefix_list=["stg"],
                                      max_image_count=5)
        repository.add_lifecycle_rule(tag_prefix_list=["prd"],
                                      max_image_count=5)
        self._ecr = repository
Exemplo n.º 24
0
    def __init__(self, scope: cdk.Construct, construct_id: str,
                 **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        # ECR repositories
        remove_old_images = ecr.LifecycleRule(
            description="Expire old images, keep 2 latest",
            rule_priority=1,
            max_image_count=2,
            tag_status=ecr.TagStatus.ANY,
        )
        self.repository_web = ecr.Repository(
            self,
            "accountant-web-repository",
            repository_name="accountant-web",
            lifecycle_rules=[remove_old_images],
        )
        self.repository_worker = ecr.Repository(
            self,
            "accountant-worker-repository",
            repository_name="accountant-worker",
            lifecycle_rules=[remove_old_images],
        )
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        # Create the ECR Repository
        ecr_repository = ecr.Repository(
            self,
            "zd-add-cust-card-to-stripe-repository",
            repository_name="zd-add-cust-card-to-stripe-repository")

        # Create the ECS Cluster (and VPC)
        vpc = ec2.Vpc(self, "zd-add-cust-card-to-stripe-vpc", max_azs=3)
        cluster = ecs.Cluster(
            self,
            "zd-add-cust-card-to-stripe-cluster",
            cluster_name="zd-add-cust-card-to-stripe-cluster",
            vpc=vpc)

        # Create the ECS Task Definition with placeholder container (and named Task Execution IAM Role)
        execution_role = iam.Role(
            self,
            "zd-add-cust-card-to-stripe-execution-role",
            assumed_by=iam.ServicePrincipal("ecs-tasks.amazonaws.com"),
            role_name="zd-add-cust-card-to-stripe-execution-role")
        execution_role.add_to_policy(
            iam.PolicyStatement(effect=iam.Effect.ALLOW,
                                resources=["*"],
                                actions=[
                                    "ecr:GetAuthorizationToken",
                                    "ecr:BatchCheckLayerAvailability",
                                    "ecr:GetDownloadUrlForLayer",
                                    "ecr:BatchGetImage",
                                    "logs:CreateLogStream", "logs:PutLogEvents"
                                ]))
        task_definition = ecs.FargateTaskDefinition(
            self,
            "zd-add-cust-card-to-stripe-task-definition",
            execution_role=execution_role,
            family="zd-add-cust-card-to-stripe-task-definition")
        container = task_definition.add_container(
            "zd-add-cust-card-to-stripe",
            image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"))

        # Create the ECS Service
        service = ecs.FargateService(
            self,
            "zd-add-cust-card-to-stripe-service",
            cluster=cluster,
            task_definition=task_definition,
            service_name="zd-add-cust-card-to-stripe-service")
Exemplo n.º 26
0
    def __init__(self, scope: cdk.Construct, construct_id: str,
                 **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        # The code that defines your stack goes here

        ecr_repository = ecr.Repository(
            self,
            "ecs-devops-sandbox-repository",
            repository_name="ecs-devops-sandbox-repository")

        vpc = ec2.Vpc(self, "ecs-devops-sandbox-vpc", max_azs=3)

        cluster = ecs.Cluster(self,
                              "ecs-devops-sandbox-cluster",
                              cluster_name="ecs-devops-sandbox-cluster",
                              vpc=vpc)

        execution_role = iam.Role(
            self,
            "ecs-devops-sandbox-execution-role",
            assumed_by=iam.ServicePrincipal("ecs-tasks.amazonaws.com"),
            role_name="ecs-devops-sandbox-execution-role")
        execution_role.add_to_policy(
            iam.PolicyStatement(effect=iam.Effect.ALLOW,
                                resources=["*"],
                                actions=[
                                    'ecr:GetAuthorizationToken',
                                    'ecr:BatchCheckLayerAvailability',
                                    'ecr:GetDownloadUrlForLayer',
                                    'ecr:BatchGetImage',
                                    'logs:CreateLogStream', 'logs:PutLogEvents'
                                ]))

        task_definition = ecs.FargateTaskDefinition(
            self,
            "ecs-devops-sandbox-task-definition",
            execution_role=execution_role,
            family="ecs-devops-sandbox-task-definition")

        container = task_definition.add_container(
            "ecs-devops-sandbox",
            image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"))

        service = ecs.FargateService(self,
                                     "ecs-devops-sandbox-service",
                                     cluster=cluster,
                                     task_definition=task_definition,
                                     service_name="ecs-devops-sandbox-service")
Exemplo n.º 27
0
 def __init__(self, scope: core.Construct, id: str,UserName="******",**kwargs):
     super().__init__(scope, id, **kwargs)
     
     self.repositories = {}
     
     # ecr repo to push docker container into
     
     self.web_index = _ecr.Repository(
         self, "Web_Index",
         repository_name="web_"+UserName+"/index",
         removal_policy=core.RemovalPolicy.DESTROY
     )
     
    
     self.repositories["web_index"] = self.web_index
Exemplo n.º 28
0
    def __init__(self, scope: core.Construct, name: str, **kwargs) -> None:
        super().__init__(scope, name, **kwargs)

        app_repositories = ['jenkins-workshop-go-app']

        default_ecr_lifecyclerule = ecr.LifecycleRule(
            description='Default ECR lifecycle Rule',
            max_image_count=500,
            rule_priority=100)

        for a in app_repositories:
            ecr.Repository(self,
                           a,
                           repository_name=a,
                           lifecycle_rules=[default_ecr_lifecyclerule],
                           removal_policy=core.RemovalPolicy.DESTROY)
    def make_ecr_repo(self, repo_suffix : str, repo_description : str):
        '''
            Creates an ECR repo

            Parameters
            ----------
            repo_suffix : str
                The suffix of the repo. The full repo name is
                APPLICATION_PREFIX _ repo_suffix
        '''
        repo_name = "%s-%s" % (self.APPLICATION_PREFIX, repo_suffix)
        repo_description = "%s %s" % (self.APPLICATION_PREFIX, repo_description)
        ecr_repo = ecr.Repository(self, repo_name, repository_name=repo_name, removal_policy=core.RemovalPolicy.DESTROY)
        util.tag_resource(ecr_repo, repo_name, repo_description)

        return ecr_repo
Exemplo n.º 30
0
    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)


        # create ECR repository
        self.ecr_repository = ecr.Repository(
            scope=self,
            id="ecr"
        )

        repo_name_output = core.CfnOutput(
            scope=self,
            id="ecr-repo-name-out",
            value=self.ecr_repository.repository_name,
            export_name=f"{id}-ecr-repo-name"
        )