Esempio n. 1
0
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        label = {"app": "hello-k8s"}

        k8s.Service(self,
                    'service',
                    spec=k8s.ServiceSpec(
                        type='LoadBalancer',
                        ports=[
                            k8s.ServicePort(
                                port=80,
                                target_port=k8s.IntOrString.from_number(8080))
                        ],
                        selector=label))

        k8s.Deployment(
            self,
            'deployment',
            spec=k8s.DeploymentSpec(
                replicas=2,
                selector=k8s.LabelSelector(match_labels=label),
                template=k8s.PodTemplateSpec(
                    metadata=k8s.ObjectMeta(labels=label),
                    spec=k8s.PodSpec(containers=[
                        k8s.Container(
                            name='hello-kubernetes',
                            image='paulbouwer/hello-kubernetes:1.7',
                            ports=[k8s.ContainerPort(container_port=8080)])
                    ]))))
Esempio n. 2
0
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        label = {"app": "guestbook-ui"}

        k8s.Service(self,
                    'service',
                    spec=k8s.ServiceSpec(
                        type='LoadBalancer',
                        ports=[
                            k8s.ServicePort(
                                port=80,
                                target_port=k8s.IntOrString.from_number(80))
                        ],
                        selector=label))

        k8s.Deployment(
            self,
            'deployment',
            spec=k8s.DeploymentSpec(
                replicas=1,
                selector=k8s.LabelSelector(match_labels=label),
                template=k8s.PodTemplateSpec(
                    metadata=k8s.ObjectMeta(labels=label),
                    spec=k8s.PodSpec(containers=[
                        k8s.Container(
                            name='guestbook-ui',
                            image='gcr.io/heptio-images/ks-guestbook-demo:0.2',
                            ports=[k8s.ContainerPort(container_port=80)])
                    ]))))
Esempio n. 3
0
    def __init__(self, scope: Construct, ns: str, *,
                 image: str,
                 replicas: typing.Optional[int] = 1,
                 port: typing.Optional[int] = 80,
                 container_port: typing.Optional[int] = 8000):
        super().__init__(scope, ns)

        label = {'app': Node.of(self).unique_id}

        k8s.Service(self, 'service',
                    spec=k8s.ServiceSpec(
                        type='NodePort',
                        ports=[k8s.ServicePort(port=port, target_port=k8s.IntOrString.from_number(container_port))],
                        selector=label))

        k8s.Deployment(self, 'deployment',
                       spec=k8s.DeploymentSpec(
                           replicas=replicas,
                           selector=k8s.LabelSelector(match_labels=label),
                           template=k8s.PodTemplateSpec(
                               metadata=k8s.ObjectMeta(labels=label),
                               spec=k8s.PodSpec(
                                   containers=[
                                       k8s.Container(
                                           name='app',
                                           image=image,
                                            ports=[k8s.ContainerPort(container_port=container_port)])]))))
Esempio n. 4
0
    def __init__(self, scope: Construct, ns: str, **kwargs):
        super().__init__(scope, ns, **kwargs)

        # define resources here
        k8s.Pod(
            self,
            'pod',
            spec=k8s.PodSpec(containers=[
                k8s.Container(name="hello-kubernetes",
                              image="paulbouwer/hello-kubernetes:1.7",
                              ports=[k8s.ContainerPort(container_port=8080)])
            ]))
Esempio n. 5
0
    def __init__(self, scope: Construct, id: str):
        super().__init__(scope, id, namespace='dev')

        app_name = 'aws-test-sa-default'
        app_label = {'app': app_name}
        k8s.KubeDeployment(
            self,
            f"Aws-TestDeployment-SA-Default",
            metadata=k8s.ObjectMeta(labels=app_label, name=app_name),
            spec=k8s.DeploymentSpec(
                replicas=1,
                selector=k8s.LabelSelector(match_labels=app_label),
                template=k8s.PodTemplateSpec(
                    metadata=k8s.ObjectMeta(labels=app_label),
                    spec=k8s.PodSpec(containers=[
                        k8s.Container(name=app_name,
                                      image="mikesir87/aws-cli:v1",
                                      command=["sleep 60"])
                    ]))))

        app_name = 'aws-test-iam-sa'
        app_label = {'app': app_name}
        k8s.KubeDeployment(
            self,
            f"Aws-TestDeployment-IAM-SA",
            metadata=k8s.ObjectMeta(labels=app_label, name=app_name),
            spec=k8s.DeploymentSpec(
                replicas=1,
                selector=k8s.LabelSelector(match_labels=app_label),
                template=k8s.PodTemplateSpec(
                    metadata=k8s.ObjectMeta(labels=app_label),
                    spec=k8s.PodSpec(service_account_name='sel-eks-sa',
                                     containers=[
                                         k8s.Container(
                                             name=app_name,
                                             image="mikesir87/aws-cli:v1",
                                             command=["sleep 60"])
                                     ]))))
Esempio n. 6
0
    def __init__(self,
                 scope: Construct,
                 ns: str,
                 *,
                 image: str,
                 replicas: int = 1,
                 port: int = 80,
                 container_port: int = 8080):
        super().__init__(scope, ns)

        label = {"app": Node.of(self).unique_id}

        k8s.Service(
            self,
            "service",
            spec=k8s.ServiceSpec(
                type="LoadBalancer",
                ports=[
                    k8s.ServicePort(
                        port=port,
                        target_port=k8s.IntOrString.from_number(
                            container_port),
                    )
                ],
                selector=label,
            ),
        )

        k8s.Deployment(
            self,
            "deployment",
            spec=k8s.DeploymentSpec(
                replicas=replicas,
                selector=k8s.LabelSelector(match_labels=label),
                template=k8s.PodTemplateSpec(
                    metadata=k8s.ObjectMeta(labels=label),
                    spec=k8s.PodSpec(containers=[
                        k8s.Container(
                            name="app",
                            image=image,
                            ports=[
                                k8s.ContainerPort(
                                    container_port=container_port)
                            ],
                        )
                    ]),
                ),
            ),
        )
Esempio n. 7
0
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        labels = {"app": "cdk8s-python"}

        k8s.Service(
            self,
            'service',
            spec=k8s.ServiceSpec(
                type='LoadBalancer',
                ports=[
                    k8s.ServicePort(
                        port=80,
                        target_port=k8s.IntOrString.from_number(80)
                    ),
                ],
                selector=labels,
            ),
        )

        k8s.Deployment(
            self,
            'deployment',
            spec=k8s.DeploymentSpec(
                replicas=2,
                selector=k8s.LabelSelector(match_labels=labels),
                template=k8s.PodTemplateSpec(
                    metadata=k8s.ObjectMeta(labels=labels),
                    spec=k8s.PodSpec(
                        containers=[
                            k8s.Container(
                                name=ns,
                                image='nginxdemos/hello',
                                ports=[
                                    k8s.ContainerPort(container_port=80),
                                ],
                            ),
                        ],
                    ),
                ),
            ),
        )
Esempio n. 8
0
    def render_k8s_resource(self, chart: Chart) -> k8s.Container:

        if self.liveness_probe_path is not None and self.liveness_probe_port is not None:
            liveness_probe = k8s.Probe(http_get=k8s.HttpGetAction(
                port=self.liveness_probe_port, path=self.liveness_probe_path))
        else:
            liveness_probe = None

        if self.readiness_probe_port is not None and self.readiness_probe_port is not None:
            readiness_probe = k8s.Probe(
                http_get=k8s.HttpGetAction(port=self.readiness_probe_port,
                                           path=self.readiness_probe_path))
        else:
            readiness_probe = None

        return k8s.Container(name=self.name,
                             image=f"{self.image}:{self.tag}",
                             ports=self.ports.render(),
                             security_context=self.security_context.render(),
                             resources=self.resource_requirements.render(),
                             volume_mounts=self.volume_mounts,
                             command=self.command,
                             liveness_probe=liveness_probe,
                             readiness_probe=readiness_probe)