cdk8s synth does not give errors but produces a blank dist\cdk8s.k8s.yaml file

55 Views Asked by At

I am trying an AWS eks example from https://github.com/aws-samples/aws-cdk-k8s-dotnet-todo . I had to update to cdk2.0. Here are the updated files

main.py

#!/usr/bin/env python
from constructs import Construct
from cdk8s import App, Chart

from imports import k8s
from webservice import WebService

class MyChart(Chart):
    def __init__(self, scope: Construct, ns: str):
        super().__init__(scope, ns)

        # define resources here
        WebService(self, 'todo-app', image='xxxxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/todo-app:latest', replicas=1)

app = App()
MyChart(app, "cdk8s")

app.synth()

webservice.py

from constructs import Construct, Node

import typing
#from imports import k8s

#from k8s.client import NotFound
from k8s.models.common import ObjectMeta
from k8s.models.service import Service, ServicePort, ServiceSpec
from k8s.models.deployment import Deployment, DeploymentSpec, LabelSelector, RollingUpdateDeployment, \
    DeploymentStrategy
from k8s.models.pod import ContainerPort, Container, LocalObjectReference, Probe, HTTPGetAction, TCPSocketAction, \
    PodTemplateSpec, PodSpec


class WebService(Construct):
    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': 'sandbox'}
        svcmetadata = ObjectMeta(name="service",  labels=label)

        Service(metadata=svcmetadata,
                    spec=ServiceSpec(
                        type='LoadBalancer',
                        ports=[ServicePort(port=port, targetPort=container_port)],
                        selector=label))

        depmetadata = ObjectMeta(name="deployment",  labels=label)
        container_port = ContainerPort(name="http8080", containerPort=container_port)

        Deployment(metadata=depmetadata,
                       spec=DeploymentSpec(
                           replicas=replicas,
                           selector=LabelSelector(matchLabels=label),
                           template=PodTemplateSpec(
                               metadata=ObjectMeta(labels=label),
                               spec=PodSpec(
                                   containers=[
                                       Container(
                                           name='app',
                                           image=image,
                                           ports=[container_port])]))))

I was able to run the cdk8s synth command. It does not give me any errors. However, it does not produce any output.

I would like the cdk8s synth to either error out or produce the results. Is there anything I can do to show me errors or generate the output? Any help would be appreciated.

0

There are 0 best solutions below