This is the source directory for "A Deep Dive into Route-Based Policy", presented on 15 September 2022. In here you will find:
steps.sh
, the demo-magic script driving most of the presentationcreate-cluster.sh
, a shell script to create ak3d
cluster and prep it with Linkerd, the books demo app, and Emissary-ingress for the ingresscreate-cluster.sh
useskustomize
only to scale Emissary down to one replica rather than three, to make it easier to work with e.g.k3d
. This is not recommended in production.
To actually run the workshop:
-
Make sure that
books.example.com
andviz.example.com
both point to 127.0.0.1 (for example, by editing/etc/hosts
). -
Make sure
$KUBECONFIG
is set correctly. -
If you need to, run
bash create-cluster.sh
to create a newk3d
cluster to use.- Note:
create-cluster.sh
will delete any existingk3d
cluster named "policy".
- Note:
-
Finally, run
bash steps.sh
to actually run the workshop demo! or just read it and run what it does by hand.- Note that
steps.sh
includes code to call out to hooks. See theHOOKS
section below for more on these: basically, though, if you do nothing special, the commands likeshow_browser
etc. will be no-ops: you'll just see messages to check things in the browser, and the script will wait for you to continue. (You might have to hit ENTER twice, though.)
- Note that
When doing the demo live, especially as a livestream, it's nice to have the
demo automagically switch the screen you're sharing to the one that's relevant
at given points of the demo. However, if you're not doing this, it's a pain to
be constantly calling things that don't exist. Enter the HOOK
setup.
At various points, the demo script will do e.g. show_browser
, which turns
into a call to run_hook BROWSER
. That will look for the DEMO_HOOK_BROWSER
environment variable: if it's defined, run_hook
will execute the command in
hook_browser
. If it's not defined, it gets silently skipped.
The end result: if you want to do fancy things, just set the requisite
DEMO_HOOK_*
variables to the commands to do fancy things. If you don't set
the DEMO_HOOK_*
variables, these steps will be silently skipped.