diff --git a/kubernetes-py-exposed-deployment/.gitignore b/kubernetes-py-exposed-deployment/.gitignore
new file mode 100644
index 000000000..a3807e5bd
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/.gitignore
@@ -0,0 +1,2 @@
+*.pyc
+venv/
diff --git a/kubernetes-py-exposed-deployment/Pulumi.yaml b/kubernetes-py-exposed-deployment/Pulumi.yaml
new file mode 100644
index 000000000..efd6db3c2
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/Pulumi.yaml
@@ -0,0 +1,6 @@
+name: kubernetes-py-exposed-deployment
+runtime:
+ name: python
+ options:
+ virtualenv: venv
+description: A minimal Python Pulumi program
diff --git a/kubernetes-py-exposed-deployment/README.md b/kubernetes-py-exposed-deployment/README.md
new file mode 100644
index 000000000..9a84551ac
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/README.md
@@ -0,0 +1,97 @@
+[![Deploy](https://get.pulumi.com/new/button.svg)](https://app.pulumi.com/new)
+
+# Exposing a Deployment with a Public IP Address
+
+Deploys `nginx` to a Kubernetes cluster, and publicly exposes it to the Internet with an IP address,
+using a Kubernetes `Service`.
+
+In the gif below we see the experience of deploying this example with `pulumi up`. Notice that
+Pulumi has an inherent notion of "done-ness" -- Pulumi waits for the IP address to be allocated to
+the `Service`. Because this example uses the Pulumi concept of _stack exports_ to report this IP
+address, in this example we are also able to use `curl` to reach the `nginx` server.
+
+![Allocating a public IP to a Deployment](images/deploy.gif "Allocating a public IP to a Deployment")
+
+## Running the App
+
+If you haven't already, follow the steps in [Pulumi Installation and
+Setup](https://www.pulumi.com/docs/get-started/install/) and [Configuring Pulumi
+Kubernetes](https://www.pulumi.com/docs/intro/cloud-providers/kubernetes/setup/) to get setup with
+Pulumi and Kubernetes.
+
+Now, install dependencies:
+
+```sh
+pip3 install -r requirements.txt
+```
+
+Create a new stack:
+
+```sh
+$ pulumi stack init
+Enter a stack name: exposed-deployment-dev
+```
+
+This example will attempt to expose the `nginx` deployment Internet with a `Service` of type
+`LoadBalancer`. Since minikube does not support `LoadBalancer`, the application already knows to use
+type `ClusterIP` instead; all you need to do is to tell it whether you're deploying to minikube:
+
+```sh
+pulumi config set is_minikube "true"
+```
+
+Perform the deployment:
+
+```sh
+$ pulumi up
+Updating stack 'exposed-deployment-dev'
+Performing changes:
+
+ Type Name Status Info
+ + pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev created 1 warning
+ + ├─ kubernetes:apps:Deployment nginx created
+ + └─ kubernetes:core:Service nginx created 2 info messages
+
+Diagnostics:
+ kubernetes:core:Service: nginx
+ info: ✅ Service 'nginx-rn6uipeg' successfully created endpoint objects
+
+ info: ✅ Service has been allocated an IP
+
+---outputs:---
+frontendIp: "35.226.79.225"
+
+info: 3 changes performed:
+ + 3 resources created
+Update duration: 46.555593397s
+
+Permalink: https://app.pulumi.com/hausdorff/exposed-deployment-dev/updates/1
+```
+
+We can see here in the `---outputs:---` section that the cluster was allocated a public IP, in this
+case `35.226.79.225`. It is exported with a stack output variable, `frontend_ip`. We can use `curl`
+and `grep` to retrieve the `
` of the site the proxy points at.
+
+> _Note_: minikube does not support type `LoadBalancer`; if you are deploying to minikube, make sure
+> to run `kubectl port-forward service/frontend 8080:80` to forward the cluster port to the local
+> machine and access the service via `localhost:8080`.
+
+```sh
+$ curl -sL $(pulumi stack output frontendIp) | grep ""
+Welcome to nginx!
+```
+
+## Next steps
+
+Now that `nginx` is deployed and exposed to the internet with an IP, try playing around with the
+example!
+
+If we change the `nginx` image to `nginx:1.16-alpine`, we can run `pulumi preview --diff` and see
+this change reported to us:
+
+![Diff](images/diff.gif "Reporting a diff after we change the app")
+
+Notice also that if you provide an image that does not exist, Pulumi will report errors as it sees
+them. You should see something similar in principle to this:
+
+![Diff](images/error.gif "Error reporting")
\ No newline at end of file
diff --git a/kubernetes-py-exposed-deployment/__main__.py b/kubernetes-py-exposed-deployment/__main__.py
new file mode 100644
index 000000000..97d93e6d8
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/__main__.py
@@ -0,0 +1,56 @@
+"""Copyright 2016-2019, Pulumi Corporation. All rights reserved."""
+
+import pulumi
+import pulumi_kubernetes as k8s
+
+"""Minikube does not implement services of type `LoadBalancer` require the user to specify if we're running on minikube, and if so, create only services of type ClusterIP."""
+config = pulumi.Config()
+is_minikube = config.require("is_minikube")
+
+"""nginx container, replicated 1 time."""
+app_name = "nginx"
+app_labels = { "app": app_name }
+
+nginx = k8s.apps.v1.Deployment(
+ app_name,
+ spec=k8s.apps.v1.DeploymentSpecArgs(
+ replicas=1,
+ selector=k8s.meta.v1.LabelSelectorArgs(match_labels=app_labels),
+ template=k8s.core.v1.PodTemplateSpecArgs(
+ metadata=k8s.meta.v1.ObjectMetaArgs(labels=app_labels),
+ spec=k8s.core.v1.PodSpecArgs(
+ containers=[
+ k8s.core.v1.ContainerArgs(
+ name=app_name,
+ image="nginx:1.15-alpine",
+ )
+ ]
+ ),
+ ),
+ )
+ )
+
+
+"""Allocate an IP to the nginx Deployment."""
+frontend = k8s.core.v1.Service(
+ app_name,
+ metadata=k8s.meta.v1.ObjectMetaArgs(
+ labels=app_labels),
+ spec=k8s.core.v1.ServiceSpecArgs(
+ selector=app_labels,
+ ports=[
+ k8s.core.v1.ServicePortArgs(
+ port=80,
+ target_port=80,
+ protocol="TCP"
+ )
+ ],
+ type="ClusterIP" if is_minikube == "true" else "LoadBalancer",
+ ),
+ )
+
+# """When "done", this will print the public IP."""
+if is_minikube == "true":
+ pulumi.export("frontend_IP", frontend.spec.apply(lambda s: s.cluster_ip))
+else:
+ pulumi.export("frontend_IP", frontend.status.apply(lambda s: s.load_balancer.ingress[0].ip))
diff --git a/kubernetes-py-exposed-deployment/images/deploy.cast b/kubernetes-py-exposed-deployment/images/deploy.cast
new file mode 100644
index 000000000..d9bbcc6ee
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/images/deploy.cast
@@ -0,0 +1,176 @@
+{"version": 2, "width": 150, "height": 30, "timestamp": 1535693128, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
+[1.94151, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
+[1.943095, "o", "\u001b]2;alex@fabienne: ~/src/pulumi/examples/kubernetes-ts-exposed-deployment\u0007\u001b]1;..ed-deployment\u0007"]
+[2.061538, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;5;15m\u001b[48;5;31m ~ \u001b[48;5;237m\u001b[38;5;31m\u001b[38;5;250m\u001b[48;5;237m src \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m pulumi \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m examples \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;254m\u001b[48;5;237m kubernetes-ts-exposed-deployment \u001b[48;5;161m\u001b[38;5;237m\u001b[38;5;15m\u001b[48;5;161m hausdorff/kube-examples + \u001b[48;5;238m\u001b[38;5;161m\u001b[38;5;39m\u001b[48;5;238m 1 \u001b[48;5;236m\u001b[38;5;238m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m \u001b[K"]
+[2.061835, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
+[2.479075, "o", "p"]
+[2.613868, "o", "\bpu"]
+[2.733643, "o", "l"]
+[2.813897, "o", "u"]
+[3.029721, "o", "m"]
+[3.19768, "o", "i"]
+[3.405792, "o", " "]
+[3.613483, "o", "u"]
+[3.677876, "o", "p"]
+[3.765484, "o", " "]
+[4.005748, "o", "-"]
+[4.163855, "o", "-"]
+[4.357561, "o", "y"]
+[4.429687, "o", "e"]
+[4.501946, "o", "s"]
+[4.637822, "o", "\u001b[?1l\u001b>"]
+[4.638144, "o", "\u001b[?2004l\r\r\n"]
+[4.639382, "o", "\u001b]2;pulumi up --yes\u0007\u001b]1;pulumi\u0007"]
+[7.662318, "o", "\u001b[38;5;13mUpdating stack 'exposed-deployment-dev'\u001b[0m\r\n"]
+[8.308534, "o", "\u001b[38;5;8mPerforming changes:\u001b[0m\r\n\r\n"]
+[9.104798, "o", "\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;12mType\u001b[0m \u001b[38;5;12mName\u001b[0m \u001b[38;5;12mStatus\u001b[0m \u001b[38;5;12mInfo\u001b[0m\u001b[0m\r\u001b[1B"]
+[9.104951, "o", "\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[1B"]
+[9.989024, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[1B"]
+[10.26485, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;12mType\u001b[0m \u001b[38;5;12mName\u001b[0m \u001b[38;5;12mStatus\u001b[0m \u001b[38;5;12mInfo\u001b[0m\u001b[0m\r\u001b[2B"]
+[10.265063, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[1B\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[1B"]
+[10.99178, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[2B"]
+[10.992077, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[1B"]
+[11.073571, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[11.143813, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m[MinimumReplicasUnavailable] Deployment does no\u001b[0m\r\u001b[1B"]
+[11.186851, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[11.991827, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[2B"]
+[11.992095, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[12.916815, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Deployment initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[12.986605, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[2B"]
+[12.986973, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Deployment initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[12.988745, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreated\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Deployment initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[13.068874, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m ├─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreated\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Deployment initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[13.06897, "o", "\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[1B"]
+[13.334209, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[13.986634, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[13.986991, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[14.989189, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[14.989561, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r"]
+[14.98983, "o", "\u001b[1B"]
+[15.987602, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[15.987858, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[16.989564, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[16.989936, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r"]
+[16.990217, "o", "\u001b[1B"]
+[17.991641, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[17.992063, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[18.991567, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[18.991941, "o", "\u001b[1A\u001b[1K\u001b[K\r"]
+[18.992129, "o", " \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[19.991479, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[19.991796, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[20.988414, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[20.988936, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[21.990945, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[21.991139, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[22.989695, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[22.990101, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/3] Finding Pods to direct traffic to\u001b[0m\r\u001b[1B"]
+[23.341021, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[23.992045, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[23.99239, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[24.989423, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[24.989599, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[25.989034, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[25.989389, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[26.989415, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[26.989796, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[27.987656, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[27.988007, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[28.987159, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[28.9889, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[29.988849, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[29.989059, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[29.989199, "o", "\u001b[1B"]
+[30.98807, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[30.988412, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[30.988603, "o", "\u001b[1B"]
+[31.987004, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[31.987457, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[32.986081, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[32.986468, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[33.985464, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[33.985686, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[34.986242, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[34.986537, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[34.98682, "o", "\u001b[1B"]
+[35.986711, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[35.986942, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[35.987031, "o", "\u001b[1B"]
+[36.988071, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[36.988418, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[37.988424, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[37.988615, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[38.986102, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[38.986291, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[39.985362, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[39.98567, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[39.985796, "o", "\u001b[1B"]
+[40.985614, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[40.985981, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[41.989681, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[41.99016, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[42.990684, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[42.991073, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[43.990559, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[43.990872, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[44.990656, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[44.991083, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[44.991263, "o", "\u001b[1B"]
+[45.990603, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[45.990983, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[46.990545, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[46.990896, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[47.990447, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[47.990802, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[48.990693, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[48.991266, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[49.985558, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[49.985847, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[50.986672, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[50.987187, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[51.986792, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[51.986991, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[52.99054, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[52.990855, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[53.984956, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[53.985141, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[53.985245, "o", "\u001b[1B"]
+[54.986881, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[3B"]
+[54.987393, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[55.990293, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[3B"]
+[55.990565, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[56.987445, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[3B"]
+[56.98777, "o", "\u001b[1A\u001b[1K\u001b[K\r"]
+[56.987919, "o", " \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r\u001b[1B"]
+[57.989253, "o", "\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[3B"]
+[57.989734, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[2/3] Attempting to allocate IP address to Service\u001b[0m\u001b[0m\r"]
+[57.98999, "o", "\u001b[1B"]
+[58.49182, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Service initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[58.556626, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreated\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Service initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[58.653756, "o", "\u001b[4A\u001b[1K\u001b[K\r"]
+[58.654002, "o", " \u001b[38;5;12mType\u001b[0m \u001b[38;5;12mName\u001b[0m \u001b[38;5;12mStatus\u001b[0m \u001b[38;5;12mInfo\u001b[0m\u001b[0m\r\u001b[4B\u001b[3A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreated\u001b[0m \u001b[0m\r\u001b[3B"]
+[58.654203, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m ├─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreated\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Deployment initialization complete\u001b[0m\u001b[0m\r\u001b[2B\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreated\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m✅ Service initialization complete\u001b[0m\u001b[0m\r\u001b[1B"]
+[58.775269, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m ├─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreated\u001b[0m \u001b[0m\r\u001b[2B"]
+[58.775592, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:core:Service nginx \u001b[38;5;2mcreated\u001b[0m \u001b[0m\r\u001b[1B \r\n"]
+[58.775885, "o", "\u001b[38;5;2m ---outputs:---\r\n\u001b[0m\u001b[38;5;2m frontendIp: \u001b[0m\u001b[38;5;2m\"35.225.110.1\"\u001b[0m\u001b[38;5;2m\r\n\u001b[0m\r\n"]
+[58.776172, "o", "\u001b[38;5;5minfo\u001b[0m: 3 changes performed:\r\n \u001b[38;5;2m+ 3 resources created\u001b[0m\r\n\u001b[38;5;8mUpdate duration: 50.426356323s\u001b[0m\r\n\r\n"]
+[58.893758, "o", "\u001b[38;5;13mPermalink: https://app.pulumi.com/hausdorff/exposed-deployment-dev/updates/45\u001b[0m\r\n"]
+[58.901997, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
+[58.902185, "o", "\u001b]2;alex@fabienne: ~/src/pulumi/examples/kubernetes-ts-exposed-deployment\u0007\u001b]1;..ed-deployment\u0007"]
+[59.195874, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;5;15m\u001b[48;5;31m ~ \u001b[48;5;237m\u001b[38;5;31m\u001b[38;5;250m\u001b[48;5;237m src \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m pulumi \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m examples \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;254m\u001b[48;5;237m kubernetes-ts-exposed-deployment \u001b[48;5;161m\u001b[38;5;237m\u001b[38;5;15m\u001b[48;5;161m hausdorff/kube-examples + \u001b[48;5;238m\u001b[38;5;161m\u001b[38;5;39m\u001b[48;5;238m 1 \u001b[48;5;236m\u001b[38;5;238m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m \u001b[K"]
+[59.19603, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
+[59.609667, "o", "\r\r\nbck-i-search: _\u001b[K\u001b[A\u001b[87C"]
+[59.865971, "o", "asciinema re\u001b[4mc\u001b[24m\u001b[1B\u001b[101Dc_\u001b[A\u001b[98C"]
+[59.985423, "o", "\u001b[12D\u001b[4mc\u001b[4mu\u001b[24mrl -sL $(p\u001b[24mulumi stack output frontendIp) | grep \"\" \r\r\nbck-i-search: cu_\u001b[K\u001b[A\u001b[A\u001b[85C"]
+[60.120351, "o", "\u001b[4mc\u001b[4mu\u001b[4mr\u001b[24m\u001b[2B\u001b[89Dr_\u001b[A\u001b[A\u001b[84C"]
+[60.193073, "o", "\u001b[2C\u001b[4mr\u001b[4ml\u001b[24m\u001b[2B\u001b[89Dl_\u001b[A\u001b[A\u001b[83C"]
+[60.871989, "o", "\u001b[24mc\u001b[24mu\u001b[24mr\u001b[24ml\u001b[2B\r\u001b[K\u001b[A\u001b[A\u001b[102C"]
+[60.872049, "o", "\u001b[?1l\u001b>"]
+[60.872232, "o", "\u001b[?2004l\u001b[2B\r"]
+[60.8746, "o", "\u001b]2;curl -sL $(pulumi stack output frontendIp) | grep --color=auto \"\"\u0007\u001b]1;curl\u0007"]
+[65.630551, "o", "\u001b[01;31m\u001b[K\u001b[m\u001b[KWelcome to nginx!\r\n"]
+[65.632747, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
+[65.63293, "o", "\u001b]2;alex@fabienne: ~/src/pulumi/examples/kubernetes-ts-exposed-deployment\u0007\u001b]1;..ed-deployment\u0007"]
+[65.736613, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;5;15m\u001b[48;5;31m ~ \u001b[48;5;237m\u001b[38;5;31m\u001b[38;5;250m\u001b[48;5;237m src \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m pulumi \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m examples \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;254m\u001b[48;5;237m kubernetes-ts-exposed-deployment \u001b[48;5;161m\u001b[38;5;237m\u001b[38;5;15m\u001b[48;5;161m hausdorff/kube-examples + \u001b[48;5;238m\u001b[38;5;161m\u001b[38;5;39m\u001b[48;5;238m 1 \u001b[48;5;236m\u001b[38;5;238m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m \u001b[K"]
+[65.736788, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
+[80.389102, "o", "\u001b[?2004l\r\r\n"]
diff --git a/kubernetes-py-exposed-deployment/images/deploy.gif b/kubernetes-py-exposed-deployment/images/deploy.gif
new file mode 100644
index 000000000..340962142
Binary files /dev/null and b/kubernetes-py-exposed-deployment/images/deploy.gif differ
diff --git a/kubernetes-py-exposed-deployment/images/diff.cast b/kubernetes-py-exposed-deployment/images/diff.cast
new file mode 100644
index 000000000..cd647162a
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/images/diff.cast
@@ -0,0 +1,60 @@
+{"version": 2, "width": 150, "height": 30, "timestamp": 1534316531, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
+[1.690079, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
+[1.6918, "o", "\u001b]2;alex@fabienne: ~/src/pulumi/test-app\u0007\u001b]1;..lumi/test-app\u0007"]
+[1.788054, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;5;15m\u001b[48;5;31m ~ \u001b[48;5;237m\u001b[38;5;31m\u001b[38;5;250m\u001b[48;5;237m src \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m pulumi \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;254m\u001b[48;5;237m test-app \u001b[48;5;161m\u001b[38;5;237m\u001b[38;5;15m\u001b[48;5;161m (Detached) \u001b[48;5;238m\u001b[38;5;161m\u001b[38;5;39m\u001b[48;5;238m 1 \u001b[48;5;236m\u001b[38;5;238m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m \u001b[K"]
+[1.788277, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
+[2.960446, "o", "p"]
+[3.063257, "o", "\bpu"]
+[3.21505, "o", "l"]
+[3.27021, "o", "u"]
+[3.495035, "o", "m"]
+[3.591179, "o", "i"]
+[3.679165, "o", " "]
+[4.159147, "o", "p"]
+[4.262894, "o", "r"]
+[4.367115, "o", "e"]
+[4.550027, "o", "v"]
+[4.743231, "o", "i"]
+[4.855098, "o", "e"]
+[4.943161, "o", "w"]
+[5.054996, "o", " "]
+[5.191109, "o", "-"]
+[5.327083, "o", "-"]
+[5.542865, "o", "d"]
+[5.655161, "o", "i"]
+[5.743131, "o", "f"]
+[5.894366, "o", "f"]
+[6.766993, "o", "\u001b[?1l\u001b>"]
+[6.767403, "o", "\u001b[?2004l\r\r\n"]
+[6.76868, "o", "\u001b]2;pulumi preview --diff\u0007\u001b]1;pulumi\u0007"]
+[7.559699, "o", "\u001b[38;5;13mPreviewing update of stack 'test-app'\u001b[0m\r\n"]
+[7.741244, "o", "✨ Previewing update of...⠋"]
+[7.862861, "o", "\b \b⠙"]
+[7.93333, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b"]
+[7.933571, "o", "\u001b[38;5;8mPreviewing changes:\u001b[0m\r\n"]
+[7.990793, "o", "✨ Previewing update of...⠋"]
+[8.11185, "o", "\b \b⠙"]
+[8.240535, "o", "\b \b⠚"]
+[8.364302, "o", "\b \b⠒"]
+[8.490512, "o", "\b \b⠂"]
+[8.61175, "o", "\b \b⠂"]
+[8.720421, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b"]
+[8.720641, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\u001b[38;5;8m* pulumi:pulumi:Stack: (same)\r\n\u001b[38;5;8m [urn=urn:pulumi:test-app::test-app::pulumi:pulumi:Stack::test-app-test-app]\r\n\u001b[0m\u001b[0m"]
+[8.740518, "o", "✨ Previewing update of...⠋"]
+[8.763852, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b"]
+[8.764054, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b"]
+[8.864884, "o", "✨ Previewing update of...⠋"]
+[8.990653, "o", "\b \b⠙"]
+[9.11241, "o", "\b \b⠚"]
+[9.240599, "o", "\b \b⠒"]
+[9.295248, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b\b \b"]
+[9.295481, "o", "\b \b\b \b\b \b\b \b\b \b\b \b\b \b"]
+[9.296282, "o", "\u001b[38;5;11m~ kubernetes:apps/v1beta1:Deployment: (update)\r\n\u001b[38;5;8m [id=default.nginx-tsz35hqn]\r\n\u001b[0m\u001b[38;5;8m [urn=urn:pulumi:test-app::test-app::kubernetes:apps/v1beta1:Deployment::nginx]\r\n\u001b[0m\u001b[38;5;8m apiVersion: \u001b[0m\u001b[38;5;8m\"apps/v1beta1\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m kind : \u001b[0m\u001b[38;5;8m\"Deployment\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m metadata : \u001b[0m\u001b[38;5;8m{\r\n\u001b[0m\u001b[38;5;8m annotations: \u001b[0m\u001b[38;5;8m{\r\n\u001b[0m\u001b[38;5;8m pulumi.com/autonamed: \u001b[0m\u001b[38;5;8m\"true\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m }\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m name : \u001b[0m\u001b[38;5;8m\"nginx-tsz35hqn\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m }\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;11m ~ spec : \u001b[0m\u001b[38;5;11m{\r\n\u001b[0m\u001b[38;5;8m replicas: \u001b[0m\u001b[38;5;8m3\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m selector: \u001b[0m\u001b[38;5;8m{\r\n\u001b[0m\u001b[38;5;8m matchLabels: \u001b[0m\u001b[38;5;8m{\r\n\u001b[0m\u001b[38;5;8m app: \u001b[0m\u001b[38;5;8m\"nginx\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m }\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m }\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38"]
+[9.296394, "o", ";5;11m ~ template: \u001b[0m\u001b[38;5;11m{\r\n\u001b[0m\u001b[38;5;8m metadata: \u001b[0m\u001b[38;5;8m{\r\n\u001b[0m\u001b[38;5;8m labels: \u001b[0m\u001b[38;5;8m{\r\n\u001b[0m\u001b[38;5;8m app: \u001b[0m\u001b[38;5;8m\"nginx\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m }\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;8m }\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;11m ~ spec : \u001b[0m\u001b[38;5;11m{\r\n\u001b[0m\u001b[38;5;11m ~ containers: \u001b[0m\u001b[38;5;11m[\r\n\u001b[0m\u001b[38;5;11m ~ [0]: \u001b[0m\u001b[38;5;11m{\r\n\u001b[0m\u001b[38;5;11m ~ image: \u001b[0m\u001b[38;5;1m\"nginx:1.15-alpine\"\u001b[0m\u001b[38;5;11m => \u001b[0m\u001b[38;5;2m\"nginx:1.16-alpine\"\u001b[0m\u001b[38;5;11m\r\n\u001b[0m\u001b[38;5;8m name : \u001b[0m\u001b[38;5;8m\"nginx\"\u001b[0m\u001b[38;5;8m\r\n\u001b[0m\u001b[38;5;11m }\r\n\u001b[0m\u001b[38;5;11m ]\r\n\u001b[0m\u001b[38;5;11m }\r\n\u001b[0m\u001b[38;5;11m }\r\n\u001b[0m\u001b[38;5;11m }\r\n\u001b[0m\u001b[0m"]
+[9.313711, "o", "\u001b[38;5;5minfo\u001b[0m: 1 change previewed:\r\n \u001b[38;5;11m~ 1 resource to update\u001b[0m\r\n 1 resource unchanged\r\n"]
+[9.324145, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
+[9.324361, "o", "\u001b]2;alex@fabienne: ~/src/pulumi/test-app\u0007"]
+[9.324502, "o", "\u001b]1;..lumi/test-app\u0007"]
+[9.424517, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;5;15m\u001b[48;5;31m ~ \u001b[48;5;237m\u001b[38;5;31m\u001b[38;5;250m\u001b[48;5;237m src \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m pulumi \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;254m\u001b[48;5;237m test-app \u001b[48;5;161m\u001b[38;5;237m\u001b[38;5;15m\u001b[48;5;161m (Detached) \u001b[48;5;238m\u001b[38;5;161m\u001b[38;5;39m\u001b[48;5;238m 1 \u001b[48;5;236m\u001b[38;5;238m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m \u001b[K"]
+[9.424595, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
+[14.838559, "o", "\u001b[?2004l\r\r\n"]
diff --git a/kubernetes-py-exposed-deployment/images/diff.gif b/kubernetes-py-exposed-deployment/images/diff.gif
new file mode 100644
index 000000000..6558558ea
Binary files /dev/null and b/kubernetes-py-exposed-deployment/images/diff.gif differ
diff --git a/kubernetes-py-exposed-deployment/images/error.cast b/kubernetes-py-exposed-deployment/images/error.cast
new file mode 100644
index 000000000..5b79a6551
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/images/error.cast
@@ -0,0 +1,69 @@
+{"version": 2, "width": 150, "height": 30, "timestamp": 1535693900, "env": {"SHELL": "/bin/zsh", "TERM": "xterm-256color"}}
+[1.926662, "o", "\u001b[1m\u001b[7m%\u001b[27m\u001b[1m\u001b[0m \r \r"]
+[1.928337, "o", "\u001b]2;alex@fabienne: ~/src/pulumi/examples/kubernetes-ts-exposed-deployment\u0007\u001b]1;..ed-deployment\u0007"]
+[2.06995, "o", "\r\u001b[0m\u001b[27m\u001b[24m\u001b[J\u001b[38;5;15m\u001b[48;5;31m ~ \u001b[48;5;237m\u001b[38;5;31m\u001b[38;5;250m\u001b[48;5;237m src \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m pulumi \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;250m\u001b[48;5;237m examples \u001b[48;5;237m\u001b[38;5;244m\u001b[38;5;254m\u001b[48;5;237m kubernetes-ts-exposed-deployment \u001b[48;5;161m\u001b[38;5;237m\u001b[38;5;15m\u001b[48;5;161m hausdorff/kube-examples + \u001b[48;5;238m\u001b[38;5;161m\u001b[38;5;39m\u001b[48;5;238m 1 \u001b[48;5;236m\u001b[38;5;238m\u001b[38;5;15m\u001b[48;5;236m $ \u001b[0m\u001b[38;5;236m\u001b[0m \u001b[K"]
+[2.070135, "o", "\u001b[?1h\u001b=\u001b[?2004h"]
+[2.526194, "o", "p"]
+[2.930883, "o", "\bpu"]
+[3.091896, "o", "l"]
+[3.178799, "o", "u"]
+[3.4029, "o", "m"]
+[3.538754, "o", "i"]
+[3.691856, "o", " "]
+[3.88387, "o", "u"]
+[3.964043, "o", "p"]
+[4.043588, "o", " "]
+[4.227887, "o", "-"]
+[4.379879, "o", "-"]
+[4.531865, "o", "y"]
+[4.611856, "o", "e"]
+[4.683894, "o", "s"]
+[5.018536, "o", "\u001b[?1l\u001b>"]
+[5.018699, "o", "\u001b[?2004l\r\r\n"]
+[5.019523, "o", "\u001b]2;pulumi up --yes\u0007\u001b]1;pulumi\u0007"]
+[9.379634, "o", "\u001b[38;5;13mUpdating stack 'exposed-deployment-dev'\u001b[0m\r\n"]
+[9.978682, "o", "\u001b[38;5;8mPerforming changes:\u001b[0m\r\n\r\n"]
+[10.807721, "o", "\r\n"]
+[10.807881, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;12mType\u001b[0m \u001b[38;5;12mName\u001b[0m \u001b[38;5;12mStatus\u001b[0m \u001b[38;5;12mInfo\u001b[0m\u001b[0m\r\u001b[1B"]
+[10.808183, "o", "\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[1B"]
+[11.650598, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[1B"]
+[11.7279, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;12mType\u001b[0m \u001b[38;5;12mName\u001b[0m \u001b[38;5;12mStatus\u001b[0m \u001b[38;5;12mInfo\u001b[0m\u001b[0m\r\u001b[2B"]
+[11.728188, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[1B"]
+[11.728312, "o", "\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[1B"]
+[12.301078, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[12.649901, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[2B"]
+[12.650058, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[12.873145, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m[MinimumReplicasUnavailable] Deployment does no\u001b[0m\r\u001b[1B"]
+[12.914933, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[13.648125, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[2B"]
+[13.648378, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[14.647748, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[2B"]
+[14.647976, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[15.648033, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[2B"]
+[15.648268, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[16.652827, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[2B"]
+[16.653221, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[17.647931, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[2B"]
+[17.648224, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[18.647551, "o", "\u001b[2A\u001b[1K\u001b[K\r"]
+[18.647795, "o", " \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[2B\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[19.648577, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[2B"]
+[19.648829, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[20.650353, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[2B"]
+[20.650662, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[21.647613, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[2B"]
+[21.647884, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;5minfo: \u001b[0m\u001b[38;5;7m[1/2] Waiting for app ReplicaSet be marked availab\u001b[0m\r\u001b[1B"]
+[22.305315, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m1 Pods failed to run because: [ImagePullBackOff\u001b[0m\r\u001b[1B"]
+[22.650501, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[0m\r\u001b[2B"]
+[22.650875, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m1 Pods failed to run because: [ImagePullBackOff\u001b[0m\r\u001b[1B"]
+[23.650848, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m...\u001b[0m \u001b[0m\r\u001b[2B"]
+[23.651193, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m1 Pods failed to run because: [ImagePullBackOff\u001b[0m\r\u001b[1B"]
+[24.649389, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m\u001b[0m \u001b[0m\r\u001b[2B"]
+[24.64966, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m1 Pods failed to run because: [ImagePullBackOff\u001b[0m\r\u001b[1B"]
+[25.650445, "o", "\u001b[2A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m pulumi:pulumi:Stack exposed-deployment-exposed-deployment-dev \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m.\u001b[0m \u001b[0m\r\u001b[2B"]
+[25.650745, "o", "\u001b[1A\u001b[1K\u001b[K\r \u001b[38;5;2m+ \u001b[0m └─ kubernetes:apps:Deployment nginx \u001b[38;5;2mcreating\u001b[0m\u001b[38;5;2m..\u001b[0m \u001b[38;5;3mwarning: \u001b[0m\u001b[38;5;7m1 Pods failed to run because: [ImagePullBackOff\u001b[0m\r\u001b[1B"]
+[30.797011, "o", "^C"]
+[30.798195, "o", "\r\n\u001b[1A\u001b[1K\u001b[K\r \r"]
+[30.79856, "o", "\u001b[1B\r\n\u001b[1A\u001b[1K\u001b[K\r\u001b[38;5;3mSystem Messages\u001b[0m\r\u001b[1B\r\n\u001b[1A\u001b[1K\u001b[K\r ^C received; cancelling. If you would like to terminate immediately, press ^C again.\r\u001b[1B\r\n\u001b[1A\u001b[1K\u001b[K"]
+[30.798833, "o", "\r \u001b[38;5;9mNote that terminating immediately may lead to orphaned resources and other inconsistencies.\r\u001b[1B\r\n\u001b[1A\u001b[1K\u001b[K\r \u001b[0m\r\u001b[1B"]
+[35.724841, "o", "\u001b[?2004l\r\r\n"]
diff --git a/kubernetes-py-exposed-deployment/images/error.gif b/kubernetes-py-exposed-deployment/images/error.gif
new file mode 100644
index 000000000..7c6102325
Binary files /dev/null and b/kubernetes-py-exposed-deployment/images/error.gif differ
diff --git a/kubernetes-py-exposed-deployment/requirements.txt b/kubernetes-py-exposed-deployment/requirements.txt
new file mode 100644
index 000000000..be038e34d
--- /dev/null
+++ b/kubernetes-py-exposed-deployment/requirements.txt
@@ -0,0 +1,2 @@
+pulumi==3.11.0
+pulumi-kubernetes==3.6.3