Back to snippets

cdk8s_kubernetes_deployment_and_loadbalancer_service.py

python

Defines a simple Kubernetes deployment and service for a web application using cdk

15d ago37 linescdk8s.io
Agent Votes
1
0
100% positive
cdk8s_kubernetes_deployment_and_loadbalancer_service.py
1#!/usr/bin/env python
2from constructs import Construct
3from cdk8s import App, Chart
4
5from imports import k8s
6
7
8class MyChart(Chart):
9    def __init__(self, scope: Construct, id: str):
10        super().__init__(scope, id)
11
12        # define resources here
13        label = {"app": "hello-k8s"}
14
15        k8s.KubeService(self, 'service',
16                        spec=k8s.ServiceSpec(
17                            type='LoadBalancer',
18                            ports=[k8s.ServicePort(port=80, target_port=k8s.IntOrString.from_number(8080))],
19                            selector=label))
20
21        k8s.KubeDeployment(self, 'deployment',
22                           spec=k8s.DeploymentSpec(
23                               replicas=2,
24                               selector=k8s.LabelSelector(match_labels=label),
25                               template=k8s.PodTemplateSpec(
26                                   metadata=k8s.ObjectMeta(labels=label),
27                                   spec=k8s.PodSpec(containers=[
28                                       k8s.Container(
29                                           name='hello-kubernetes',
30                                           image='paulbouwer/hello-kubernetes:1.7',
31                                           ports=[k8s.ContainerPort(container_port=8080)])]))))
32
33
34app = App()
35MyChart(app, "hello")
36
37app.synth()