Hi There, I am really stuck in a Pulumi/Python/Ku...
# python
e
Hi There, I am really stuck in a Pulumi/Python/Kubernetes issue... I really need help or hints. Used command:
pulumi up
System: • pulumi version ◦ v3.55.0 • kubectl version ◦ Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.6+k3s1", GitCommit:"9176e03c5788e467420376d10a1da2b6de6ff31f", GitTreeState:"clean", BuildDate:"2023-01-26T004747Z", GoVersion:"go1.19.5", Compiler:"gc", Platform:"linux/amd64"} ◦ Kustomize Version: v4.5.7 ◦ Server Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.3+k3s1", GitCommit:"f2585c1671b31b4b34bddbb3bf4e7d69662b0821", GitTreeState:"clean", BuildDate:"2022-10-25T195938Z", GoVersion:"go1.19.2", Compiler:"gc", Platform:"linux/amd64"} • python version ◦ Python 3.11.2 • OS ◦ Ubuntu 20.04.5 LTS Output:
>>> pulumi up
Previewing update (black_ant)
Type                                    Name                         Plan       Info
pulumi:pulumi:Stack                     blackant-pulumi-black_ant               3 messages
└─ pkg:index:App                        app
├─ pkg:index:frontend-deployment     frontend
~      │  └─ kubernetes:apps/v1:Deployment  blackant_frontendDeployment  update     [diff: ~spec]
+      └─ pkg:index:frontend-service        frontend                     create
+         └─ kubernetes:core/v1:Service     blackant_frontendService     create
Diagnostics:
pulumi:pulumi:Stack (blackant-pulumi-black_ant):
Outputs:
+ frontend: "frontend"
Do you want to perform this update? yes
Updating (black_ant)
Type                                    Name                         Status                  Info
pulumi:pulumi:Stack                     blackant-pulumi-black_ant    **failed**              1 error
└─ pkg:index:App                        app
└─ pkg:index:frontend-deployment     frontend
~         └─ kubernetes:apps/v1:Deployment  blackant_frontendDeployment  **updating failed**     [diff: ~spec]; 1 error
Diagnostics:
kubernetes:apps/v1:Deployment (blackant_frontendDeployment):
error: update of resource blackant-components/frontend failed because the Kubernetes API server reported that it failed to fully initialize or become live: deployments.apps "frontend" not found
pulumi:pulumi:Stack (blackant-pulumi-black_ant):
error: update failed
Outputs:
+ frontend: "frontend"
Resources:
5 unchanged
Duration: 7s
app.py
Copy code
import os

import pulumi
from pulumi import ResourceOptions

from modules.app.deployment.frontend_deployment import Frontend
from modules.app.service.frontend_service import FrontendService


class App(pulumi.ComponentResource):
    def __init__(self, name, opts=None):
        super().__init__('pkg:index:App', name, None, opts)

        frontend = Frontend(
            replica_count=3,
            version="latest", # prod_version,
            canary=False,
            opts=ResourceOptions(parent=self)
        )

        frontend_service = FrontendService(
            opts=ResourceOptions(
                parent=self,
                depends_on=[frontend]
            )
        )
frontend_deployment.py
Copy code
import pulumi
from pulumi import Config, ResourceOptions
from pulumi_kubernetes.apps.v1 import Deployment, DeploymentSpecArgs
from pulumi_kubernetes.core.v1 import PodTemplateSpecArgs, PodSpecArgs, ContainerArgs, EnvVarArgs, ContainerPortArgs, \
    Service, ServiceSpecArgs, ServicePortArgs, LocalObjectReferenceArgs
from pulumi_kubernetes.meta.v1 import ObjectMetaArgs, LabelSelectorArgs

from modules.app.deployment.blackant_deployment import BlackantDeployment


class Frontend(BlackantDeployment):
    def __init__(self, replica_count, version, canary, opts=None):
        
        super().__init__("frontend", version, replica_count, canary, None, opts)
        

        cfg = Config()

        blackant_frontend_deployment = Deployment(
            "blackant_frontendDeployment",
            api_version="apps/v1",
            kind="Deployment",
            metadata=ObjectMetaArgs(
                name=self._fullname,
                labels={
                    "app": "blackant",
                    "tier": "frontend",
                },
                namespace="blackant-components",
            ),
            spec=DeploymentSpecArgs(
                replicas=replica_count,
                selector=LabelSelectorArgs(
                    match_labels={
                        "tier": "frontend",
                    },
                ),
                template=PodTemplateSpecArgs(
                    metadata=ObjectMetaArgs(
                        labels={
                            "tier": "frontend",
                        },
                    ),
                    spec=PodSpecArgs(
                        image_pull_secrets=[LocalObjectReferenceArgs(name="blackant-image-pull-secret")],
                        containers=[
                            ContainerArgs(
                                name="blackant-frontend",
                                image=f"{cfg.require('docker_registry')}/system/frontend:{version}",
                                env=[
                                    EnvVarArgs(
                                        name="CANARY",
                                        value=canary.__str__()
                                    ),
                                ]
                            )
                        ],
                    ),
                ),
            ),
            opts=ResourceOptions(parent=self)
        )
        print("REALLY AFTERRR")
blackant_deployment.py
Copy code
from typing import Mapping, Awaitable

import pulumi
from pulumi import Config, Output, ResourceOptions

from modules.util.configuration_resolver import ConfigurationResolver


class BlackantDeployment(pulumi.ComponentResource):

    def __init__(
            self,
            name: str,
            version: str,
            replica_count: int,
            canary: bool,
            props: Mapping[str, Awaitable | Output] | None = None,
            opts: ResourceOptions | None = None
    ):
        super().__init__(f'pkg:index:{name}-deployment{"" if not canary else "-canary"}', name, props, opts)

        self._fullname = f'{name}{"" if not canary else "-canary"}'
Thanks in advance, Milan