Skip to content

Latest commit

 

History

History

components

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Deploy this example with Pulumi Deploy this example with Pulumi

Kubernetes Guestbook (with Components)

A version of the Kubernetes Guestbook application using Pulumi. Unlike the direct port of the original YAML, this variant leverages real code to eliminate boilerplate. A ServiceDeployment class is used that combines the common pattern of deploying a container image using a Kubernetes Deployment, and then scaling it using a Service.

Running the App

Follow the steps in Pulumi Installation and Kubernetes Setup to get Pulumi working with Kubernetes.

Create a new stack:

$ pulumi stack init
Enter a stack name: testbook

This example will attempt to expose the Guestbook application to the Internet with a Service of type LoadBalancer. Since minikube does not support LoadBalancer, the Guestbook application already knows to use type ClusterIP instead; all you need to do is to tell it whether you're deploying to minikube:

pulumi config set isMinikube <value>

Perform the deployment:

$ pulumi up
Updating (kubernetes-go-guestbook):
     Type                                                    Name                                             Status
 +   pulumi:pulumi:Stack                                     kubernetes-go-guestbook-kubernetes-go-guestbook  created
 +   ├─ kubernetes-go-guestbook:component:ServiceDeployment  redis-leader                                     created
 +   │  ├─ kubernetes:core:Service                           redis-leader                                     created
 +   │  └─ kubernetes:apps:Deployment                        redis-leader                                     created
 +   ├─ kubernetes-go-guestbook:component:ServiceDeployment  redis-replica                                    created
 +   │  ├─ kubernetes:core:Service                           redis-replica                                    created
 +   │  └─ kubernetes:apps:Deployment                        redis-replica                                    created
 +   └─ kubernetes-go-guestbook:component:ServiceDeployment  frontend                                         created
 +      ├─ kubernetes:core:Service                           frontend                                         created
 +      └─ kubernetes:apps:Deployment                        frontend                                         created

Outputs:
    frontend_ip: "10.96.243.48"

Resources:
    + 10 created

And finally - open the application in your browser to see the running application. If you're running macOS you can simply run:

open $(pulumi stack output frontendIP)

Note: minikube does not support type LoadBalancer; if you are deploying to minikube, make sure to run kubectl port-forward svc/frontend 8080:80 to forward the cluster port to the local machine and access the service via localhost:8080.

Guestbook in browser