This repo contains the application configuration for the Faces demo, which has been used for a great many things at this point, notably many Buoyant Service Mesh Academy workshop and KubeCrash events.
This repo is intended to be used as part of a GitOps workflow; it was created specifically for the Real World GitOps with Argo CD and Linkerd Service Mesh Academy workshop. You can find that workshop source in the real-world-argo-linkerd repo, and going through that workshop is the best way to use this repo.
Point Argo to the argocd/applications
directory of this repo. The assumption
is that you've already installed Linkerd and Emissary-ingress into the
cluster.
Alternately, you can also just fork this repo and play around with whatever GitOps setup you have going. You'll need a Kubernetes cluster into which you've already installed Linkerd, Emissary-ingress, and the Faces demo, and both Emissary and Faces must be part of the Linkerd mesh.
You can look at the argocd
directory for reference, but here are the steps:
-
Create the
faces
namespace. Make sure it's annotated withlinkerd.io/inject: enabled
(there's a suitable manifest inargocd/resources/bootstrap/faces-namespace.yaml
). -
Install the Faces Helm chart from
oci://registry-1.docker.io/dwflynn/faces-chart:0.8.0
. -
Install the manifests in the
k8s
directory to configure Emissary to talk to Faces.
The end result should be that if you point your browser at the
emissary-ingress
service in the emissary
namespace, you'll see
- The Linkerd Viz dashboard at
/
- The Faces demo at
/faces/
- The
face
workload at/face/
-- this is necessary for the Faces demo to work! but you won't be pointing a browser directly to it.
Note: The configuration here does not configure anything fancy: no retries, timeouts, circuit breaking, or any of that stuff. It's just the bare minimum to get the demo working, to give you a place to stand to play with using GitOps to configure whatever you want.