The old version was using a slightly confusing way to show which pods were receiving traffic: kubectl logs --tail 1 --selector app=rng (And then we look at the timestamp of the last request.) In this new version, concepts are introduced progressively; the YAML parser magic is isolated from the other concerns; we show the impact of removing a pod from load balancing in a way that is (IMHO) more straightforward: - follow logs of specific pod - remove pod from load balancer - logs instantly stop flowing These slides also explain why the DaemonSet and the ReplicaSet for the rng service don't step on each other's toes.
MarkMaker
General principles:
- each slides deck is described in a YAML manifest;
- the YAML manifest lists a number of Markdown files that compose the slides deck;
- a Python script "compiles" the YAML manifest into a HTML file;
- that HTML file can be displayed in your browser (you don't need to host it), or you can publish it (along with a few static assets) if you want.
Getting started
Look at the YAML file corresponding to the deck that you want to edit. The format should be self-explanatory.
I (Jérôme) am still in the process of fine-tuning that format. Once I settle for something, I will add better documentation.
Make changes in the YAML file, and/or in the referenced Markdown files. If you have never used Remark before:
- use
---to separate slides, - use
.foo[bla]if you wantblato have CSS classfoo, - define (or edit) CSS classes in workshop.css.
After making changes, run ./build.sh once; it will
compile each foo.yml file into foo.yml.html.
You can also run ./build.sh forever: it will monitor the current
directory and rebuild slides automatically when files are modified.
Publishing pipeline
Each time we push to master, a webhook pings
Netlify, which will pull
the repo, build the slides (by running build.sh once),
and publish them to http://container.training/.
Pull requests are automatically deployed to testing subdomains. I had no idea that I would ever say this about a static page hosting service, but it is seriously awesome. ⚡️💥
Extra bells and whistles
You can run ./slidechecker foo.yml.html to check for
missing images and show the number of slides in that deck.
It requires phantomjs to be installed. It takes some
time to run so it is not yet integrated with the publishing
pipeline.