release-copy: the released images (skopeo dir:, digest-true) and agent packages copied to ep0 nightly, verified by sha256 and a checksum compare, capped at 3 GB (D33, R-1227); tests red-proved
gates / gates (push) Successful in 15m56s
gates / gates (push) Successful in 15m56s
This commit is contained in:
1 parent
be7e97dc1a
commit
d306b8c2d7
6 files changed
+531
No files matched your search
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
# install.sh — install the release copy job on DooPlex (D33, R-1227). Root. Idempotent.
|
||||
# Installs the script and two units, writes /etc/felhom-release-copy/env (no secrets) when absent, and does NOT enable
|
||||
# the timer — enable it by hand after the first manual run: systemctl enable --now felhom-release-copy.timer
|
||||
# The registry token (registry-token), the SSH key (id_ed25519) and ep0's host key (known_hosts) are created
|
||||
# separately, file to file, never by this script (runbook total-loss-of-dooplex.md, „The release copy").
|
||||
set -eu
|
||||
HERE=$(cd "$(dirname "$0")" && pwd)
|
||||
[ "$(id -u)" = 0 ] || { echo "install.sh: run as root" >&2; exit 1; }
|
||||
install -m 0755 "$HERE/felhom-release-copy" /usr/local/sbin/felhom-release-copy
|
||||
for u in felhom-release-copy.service felhom-release-copy.timer; do
|
||||
install -m 0644 "$HERE/$u" "/etc/systemd/system/$u"
|
||||
done
|
||||
install -d -m 0700 /etc/felhom-release-copy /var/lib/felhom-release-copy
|
||||
if [ ! -f /etc/felhom-release-copy/env ]; then
|
||||
umask 077
|
||||
cat > /etc/felhom-release-copy/env <<'ENV'
|
||||
# Not secret. The token is in registry-token (0600), the SSH key in id_ed25519 (0600).
|
||||
REMOTE='felhom-relcopy@167.233.158.164'
|
||||
REGISTRY_USER='admin'
|
||||
# the newest KEEP release tags of each image; the newest AGENT_KEEP agent versions (the vouched one can lag the newest)
|
||||
REPOS='felhom-controller felhom-hub felhom-samba'
|
||||
KEEP=3
|
||||
AGENT_KEEP=5
|
||||
# the cap: the sender refuses to send a bigger copy (ep0's / has ~14 GB free; ep0 has no quota)
|
||||
CAP_MB=3072
|
||||
ENV
|
||||
fi
|
||||
systemctl daemon-reload
|
||||
echo "install.sh: installed; timer NOT enabled (see the header)"
|
||||
Reference in new issue
Block a user