The settings file can now specify an optional list of steps.
After creating a bunch of instances, the steps are then
automatically executed. This helps since virtually all
deployments will be a sequence of 'start + deploy + otheractions'.
It also helps to automatically excecute steps like webssh
and tailhist (since I tend to forget them often).
Many improvements. QR code, fixed page size, better
use of page estate, etc.
Also pdfkit should kind of work now (not quite using
the full page size, but at least it's not utterly
broken like before).
This script needs:
- a list of domains managed by GANDI LiveDNS
- a list of IP addresses of clusters (like in tags/*/ips.txt)
It will replace the current configuration for these
domains so that they point to the clusters.
The apex of each domain and a wildcard entry will
have round-robin records pointing to all the nodes
of the cluster.
In addition, there will be records node[1234...]
pointing to each individual node.
Instead of upgrading from 1.16 to <latest> we upgrade from 1.15
to 1.16, because upgrading from <latest-1> is a special case and
it is better to show the general case.
Also, the script that sets up admin clusters now has some retry
logic to accommodate hiccups in pssh or in the cloud provider.
- Kubernetes binaries installed for ops labs bumped up to 1.17.2
- Composed-based control plane bumped up to 1.17.2
- kuberouter now uses apps/v1 DaemonSet (compatible with 1.16+)
- disable containerd (cosmetic)
Autopilot can now continue when errors happen, and it writes
success/failure of each snippet in a log file for later review.
Also added e2e.sh to provision a test environment and start
the remote tmux instance.
Installing `mosh` via Homebrew may change `/usr/local/bin/python` to
Python 2. Adds docs to check and fix this so that `pyyml` and `jinja2`
can be installed.
Most parameters used by the Jinja template for the cards
can now be specified in settings.yaml. This should make
the generation of cards for admin training much easier.
This helps when the customer's internet connection filters out
the default port range. It still requires to have a port range
open somewhere, though. here we use 10000-10999, but this should
be adjusted if necessary.