This adds a codeserver action, which installs code-server
and pre-installs a couple of useful extension. It also
installs a systemd user unit in the user account to run it
automatically.
The 'passwords' action has been tweaked so that it also
creates a code-server configuration file to set the password,
so that the same password can be used for SSH access and
for code-server access.
Seems to help with AT&T fiber router.
(Actually it takes a longer delay to make a difference,
like 10 seconds, but this patch makes the delay configurable.)
Instead of showing kubenet and kuberouter with
Kubernetes 1.19, we now start with Kubernetes
1.28 (or whatever is the latest version) along
with containerd and CNI.
Break out kubernetes package installation and kubeadm invocation
to two different steps, so that we can install kubernetes packages
without setting up the cluster (for the new DMUC labs).
Instead of passing an image name through a terraform variable,
use tags to select the latest image matching the specified
tags (in this case, os=Ubuntu version=22.04).
- instead of using 'kubectl wait nodes', we now use a simpler
'kubectl get nodes -o name' and check if there is anything
in the output. This seems to work better (as the previous
method would sometimes remain stuck because the kubectl
process would never get stopped by SIGPIPE).
- the shpod SSH NodePort is no longer hard-coded to 32222,
which allows us to use e.g. vcluster to deploy multiple
Kubernetes labs on a single 'home' (or 'outer') Kubernetes
cluster.
We now go from 1.22 to 1.23.
Updating to 1.22 was necessary because Kubernetes 1.27
deprecated kubeadm config v1beta2, which forced us to
upgrade to v1beta3, which was only introduced in 1.22.
In other words, our scripts can only install Kubernetes
1.22+ now.