Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Pac-Man multiplayer server - Service Meshes

This repository contains all deployment-related stuff regarding pacman-collectibles project. These two repositories are helper code repositories for my talk Tearing down the pyramid... using functions and meshes.

Bootstrapping the cluster

In order to run examples from the talk you will need:

  • docker installed,
  • minikube installed,
  • minikube ip inserted in linkerd.yaml file,
  • output of echo "$(minikube ip)" inserted in /etc/hosts file,
  • kubectl apply -f default to deploy services and deployments to default namespace,
  • kubectl apply -f pacman to deploy services and deployments to pacman namespace,
  • eval $(minikube docker-env) (so that local docker commands use docker inside minikube),
  • go to in your browser.

You can check and compare the state of your cluster with the desired one by doing:

> kubectl get po,svc -n default
l5d-p52ln   2/2       Running   4          10h

NAME         TYPE           CLUSTER-IP       EXTERNAL-IP      PORT(S)          AGE
kubernetes   ClusterIP        <none>           443/TCP          12h
l5d          LoadBalancer   4140:32544/TCP   12h

> kubectl get po,svc -n pacman
NAME                            READY     STATUS    RESTARTS   AGE
backend-54bfcbbbcb-mwlbk        1/1       Running   2          8h
backend-test-9db749db4-dbhb8    1/1       Running   1          5h
collectibles-6975f8ddf4-cm7jt   0/1       ErrImageNeverPull   0          7s
frontend-794d4cb455-67rjb       1/1       Running   2          8h
frontend-test-8fdf45fbf-9qj72   1/1       Running   1          5h

NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
backend         ClusterIP   <none>        8080/TCP   12h
backend-test    ClusterIP   <none>        8080/TCP   12h
collectibles    ClusterIP     <none>        8080/TCP   12h
frontend        ClusterIP    <none>        5000/TCP   12h
frontend-test   ClusterIP    <none>        5000/TCP   12h

All services besides one should be deployed correctly. In order to get collectibles, you need to build it yourself.

Building & deploying missing pacman-collectibles service

Check out code inside pacman-collectibles and run:

sbt assembly
eval $(minikube docker-env)
docker build -t pacman-collectibles:v1 .
kubectl apply -f pacman/pacman-collectibles.yaml

This will build fat-jar, docker image and deploy the service to your cluster.

Other services

The application can be built and deployed to Docker and/or Kubernetes with Linkerd 1 service mesh. All apps besides pacman-collectibles are already build and pushed to global repository. You can find the code for those applications in the following repositories:


Kubernetes deployment files for simple microservice architecture of Pac-Man game.






No releases published


No packages published