red-kangaroo-44125
09/20/2021, 4:53 PMDiagnostics:
pulumi:pulumi:Stack (strapi-strapi-kubernetes):
error: Program failed with an unhandled exception:
error: Traceback (most recent call last):
File "/home/dishant/.pulumi/bin/pulumi-language-python-exec", line 92, in <module>
loop.run_until_complete(coro)
File "/usr/lib64/python3.9/asyncio/base_events.py", line 642, in run_until_complete
return future.result()
File "/home/dishant/Projects/cloud-poc/infrastructure/stacks/strapi/venv/lib64/python3.9/site-packages/pulumi/runtime/stack.py", line 110, in run_in_stack
await run_pulumi_func(lambda: Stack(func))
File "/home/dishant/Projects/cloud-poc/infrastructure/stacks/strapi/venv/lib64/python3.9/site-packages/pulumi/runtime/stack.py", line 43, in run_pulumi_func
func()
File "/home/dishant/Projects/cloud-poc/infrastructure/stacks/strapi/venv/lib64/python3.9/site-packages/pulumi/runtime/stack.py", line 110, in <lambda>
await run_pulumi_func(lambda: Stack(func))
File "/home/dishant/Projects/cloud-poc/infrastructure/stacks/strapi/venv/lib64/python3.9/site-packages/pulumi/runtime/stack.py", line 133, in __init__
func()
File "/home/dishant/.pulumi/bin/pulumi-language-python-exec", line 91, in <lambda>
coro = pulumi.runtime.run_in_stack(lambda: runpy.run_path(args.PROGRAM, run_name='__main__'))
File "/usr/lib64/python3.9/runpy.py", line 285, in run_path
return _run_code(code, mod_globals, init_globals,
File "/usr/lib64/python3.9/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/dishant/Projects/cloud-poc/infrastructure/stacks/strapi/./__main__.py", line 41, in <module>
ingress = Ingress(
TypeError: __init__() takes 1 positional argument but 2 positional arguments (and 2 keyword-only arguments) were given
error: an unhandled error occurred: Program exited with non-zero exit code: 1
This is my pulumi code:
"""A Kubernetes Python Pulumi program"""
import http
from importlib.resources import path
import pulumi
from pulumi_kubernetes.apps.v1 import Deployment, DeploymentSpecArgs
from pulumi_kubernetes.networking.v1 import *
from pulumi_kubernetes.networking.v1.outputs import *
from pulumi_kubernetes.meta.v1 import LabelSelectorArgs, ObjectMetaArgs
from pulumi_kubernetes.core.v1 import *
app_labels = { "app": "strapi" }
deployment = Deployment(
"strapi",
spec=DeploymentSpecArgs(
selector=LabelSelectorArgs(match_labels=app_labels),
replicas=2,
template=PodTemplateSpecArgs(
metadata=ObjectMetaArgs(labels=app_labels),
spec=PodSpecArgs(containers=[ContainerArgs(name="nginx", image="strapi/strapi")])
),
))
pulumi.export("name", deployment.metadata["name"])
strapiService = Service("strapiService",
api_version="v1",
kind="Service",
metadata=ObjectMetaArgs(
name="strapi",
),
spec=ServiceSpecArgs(
selector=app_labels,
ports=[ServicePortArgs(
protocol="TCP",
port=80,
target_port=1337,
)],
))
ingress = Ingress(
"strapi",
metadata=ObjectMetaArgs(
name="strapi",
),
spec=IngressSpecArgs(
ingress_class_name="nginx",
rules=IngressRuleArgs(
host="strapi.test.cluster",
http=HTTPIngressRuleValueArgs(
paths=HTTPIngressPathArgs(
backend=IngressBackendArgs(
service=IngressServiceBackendArgs(
name="strapi",
port=ServiceBackendPortArgs(
name="http",
number="80"
),
)
),
path_type="Prefix",
path="/"
)
)
))
)
prehistoric-activity-61023
09/20/2021, 5:04 PMpulumi_kubernetes.networking.v1.outputs
TypeError: __init__() takes 1 positional argument but 2 positional arguments (and 2 keyword-only arguments) were given
import pulumi
from pulumi_kubernetes.apps.v1 import Deployment, DeploymentSpecArgs
from pulumi_kubernetes.core.v1 import (
ContainerArgs,
PodSpecArgs,
PodTemplateSpecArgs,
Service,
ServicePortArgs,
ServiceSpecArgs,
)
from pulumi_kubernetes.meta.v1 import LabelSelectorArgs, ObjectMetaArgs
from pulumi_kubernetes.networking.v1 import (
HTTPIngressPathArgs,
HTTPIngressRuleValueArgs,
Ingress,
IngressBackendArgs,
IngressRuleArgs,
IngressServiceBackendArgs,
IngressSpecArgs,
ServiceBackendPortArgs,
)
app_labels = {"app": "strapi"}
deployment = Deployment(
"strapi",
spec=DeploymentSpecArgs(
selector=LabelSelectorArgs(match_labels=app_labels),
replicas=2,
template=PodTemplateSpecArgs(
metadata=ObjectMetaArgs(labels=app_labels),
spec=PodSpecArgs(
containers=[ContainerArgs(name="nginx", image="strapi/strapi")]
),
),
),
)
pulumi.export("name", deployment.metadata["name"])
strapiService = Service(
"strapiService",
api_version="v1",
kind="Service",
metadata=ObjectMetaArgs(
name="strapi",
),
spec=ServiceSpecArgs(
selector=app_labels,
ports=[
ServicePortArgs(
protocol="TCP",
port=80,
target_port=1337,
)
],
),
)
ingress = Ingress(
"strapi",
metadata=ObjectMetaArgs(
name="strapi",
),
spec=IngressSpecArgs(
ingress_class_name="nginx",
rules=[
IngressRuleArgs(
host="strapi.test.cluster",
http=HTTPIngressRuleValueArgs(
paths=[
HTTPIngressPathArgs(
backend=IngressBackendArgs(
service=IngressServiceBackendArgs(
name="strapi",
port=ServiceBackendPortArgs(
name="http", number="80"
),
)
),
path_type="Prefix",
path="/",
)
]
),
)
],
),
)
from X import *
, it might be evil as you’ve already checked
• you had 2 small extra issues:
◦ rules
definition; it’s supposed to be a list, not a single object
◦ same for paths
billowy-army-68599
09/20/2021, 5:14 PMfrom X import *
syntax, I prefer to use the more canonical imports, see here:
https://github.com/jaxxstorm/pulumi-nginx-demo/blob/main/nginx-ingress/app.pyprehistoric-activity-61023
09/20/2021, 5:15 PMimport pulumi_kubernetes as k8s
billowy-army-68599
09/20/2021, 5:16 PMprehistoric-activity-61023
09/20/2021, 5:17 PMbillowy-army-68599
09/20/2021, 5:17 PMprehistoric-activity-61023
09/20/2021, 5:17 PMred-kangaroo-44125
09/21/2021, 10:57 AM