Skip to main content

Search the Dev Center

Search tutorials, templates, examples, and more.

Sock Shop Pulumi demo

The standard Weaveworks Sock Shop demo based on https://github.com/microservices-demo/microservices-demo

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set kubernetes-ts-sock-shop
cd pulumi-examples/kubernetes-ts-sock-shop

A version of the standard Sock Shop microservices reference app app using Pulumi and @pulumi/kubernetes.

Prerequisites#

  1. Install Pulumi
  2. Configure Kubernetes
  3. Install Node.js

Deploying the example#

  1. Create a new stack:

    Terminal window
    pulumi stack init dev
  2. Tell the application whether you’re deploying to minikube:

    Terminal window
    pulumi config set isMinikube <value>
  3. Install dependencies:

    Terminal window
    npm install
  4. Deploy the stack:

    Terminal window
    pulumi up
    Updating stack 'testing'
    Performing changes:
    Type Name Status Info
    + kubernetes:core:Service carts-db created
    + kubernetes:core:Service carts created
    + kubernetes:core:Service catalog-db created
    + kubernetes:core:Service catalog created
    + kubernetes:core:Service orders-db created
    + kubernetes:core:Service orders created
    + kubernetes:core:Service payment created
    + kubernetes:core:Service rabbitmq created
    + kubernetes:core:Service shipping created
    + kubernetes:core:Service user-db created
    + kubernetes:core:Service user created
    + kubernetes:core:Service front-end created
    + kubernetes:core:Service queue-master created
    + kubernetes:apps:Deployment queue-master created
    + kubernetes:apps:Deployment catalog-db created
    + kubernetes:apps:Deployment catalog created
    + kubernetes:apps:Deployment payment created
    + kubernetes:apps:Deployment rabbitmq created
    + kubernetes:apps:Deployment front-end created
    + kubernetes:apps:Deployment carts-db created
    + kubernetes:apps:Deployment orders-db created
    + kubernetes:apps:Deployment user-db created
    + kubernetes:apps:Deployment user created
    + kubernetes:apps:Deployment carts created
    + kubernetes:apps:Deployment orders created
    + kubernetes:apps:Deployment shipping created
    info: 27 changes performed:
    + 27 resources created
    Update duration: 3m2.127835854s
  5. The application is now deployed. Use kubectl to see the deployed services:

    Terminal window
    kubectl get services -n sock-shop
    NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
    carts 10.47.242.164 <none> 80/TCP 4m
    carts-db 10.47.245.60 <none> 27017/TCP 4m
    catalogue 10.47.255.170 <none> 80/TCP 4m
    catalogue-db 10.47.252.96 <none> 3306/TCP 4m
    front-end 10.47.247.63 <nodes> 80:30001/TCP 4m
    orders 10.47.255.197 <none> 80/TCP 4m
    orders-db 10.47.242.209 <none> 27017/TCP 4m
    payment 10.47.254.192 <none> 80/TCP 4m
    queue-master 10.47.251.206 <none> 80/TCP 4m
    rabbitmq 10.47.254.26 <none> 5672/TCP 4m
    shipping 10.47.247.218 <none> 80/TCP 4m
    user-db 10.47.242.91 <none> 27017/TCP 4m
    user 10.47.242.91 <none> 27017/TCP 4m

Cleaning up#

Once you’re finished experimenting, you can destroy your stack and remove it to avoid incurring any additional cost:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.