mirror of
https://scm.tikali.ai/tikali/applications/monky/monky-deployd.git
synced 2026-09-18 05:36:15 +00:00
fix: accept sites fmt|cbs|pdx|roam (tenancy 0.7.x) and keep the identity read grant alive across tunneller rewrites — 0.1.10
deployd#3 (DD-0620): every kit for a backend registered since 2026-09-08 died at `--site`. env-dev-08 (2026-09-11..13): two days of "identity is not readable" ticks — ziti-edge-tunnel re-creates the file with mode 0600, the ACL mask goes to ---, group membership stops helping. identity-acl.sh + monky-deployd-identity-acl.path re-apply the grant on every directory change. Doc-Drift: DD-0620 fixed Closes #3 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ASnneBmT7rfaJLE8NGNw7S
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
# T=<read-only GitLab deploy token, scope read_package_registry> # from the install kit / OpenBao
|
||||
# curl -sSf -H "DEPLOY-TOKEN: $T" \
|
||||
# https://scm.tikali.ai/api/v4/projects/69/packages/generic/monky-deployd/0.1.6/install.sh \
|
||||
# | sudo bash -s -- --env env-qa-02 --site cbs --token "$T" --bootstrap-file bootstrap.jwt \
|
||||
# | sudo bash -s -- --env env-qa-02 --site fmt --token "$T" --bootstrap-file bootstrap.jwt \
|
||||
# [--transport sdk|proxy|system] [--version 0.1.6] [--enrol-jwt /path/monky-host.env-qa-02.jwt] \
|
||||
# [--laptop] [--source gitlab|gitea] [--docker-data-root /home/docker-data]
|
||||
#
|
||||
@@ -77,7 +77,7 @@ done
|
||||
[ -n "$SITE" ] || die "--site is required"
|
||||
[[ "$ENV_ID" =~ ^env-(dev|qa|stage|prod)-[0-9]{2,3}$|^(dev-env-2|prod-cedar)$ ]] || die "env id $ENV_ID is not env-<tier>-<nn>"
|
||||
SITE="${SITE,,}"
|
||||
[[ "$SITE" =~ ^(cbs|pdx)$ ]] || die "site must be cbs|pdx"
|
||||
[[ "$SITE" =~ ^(fmt|cbs|pdx|roam)$ ]] || die "site must be fmt|cbs|pdx|roam (tenancy issues fmt|pdx|roam; cbs = the deprecated alias of fmt)"
|
||||
[[ "$TRANSPORT" =~ ^(sdk|proxy|system)$ ]] || die "transport must be sdk|proxy|system"
|
||||
[[ "$SOURCE" =~ ^(gitlab|gitea)$ ]] || die "source must be gitlab|gitea"
|
||||
# never let the token leak through xtrace / the environment of children
|
||||
@@ -219,10 +219,14 @@ install -d -m 0700 -o monky-deployd -g monky-deployd /var/lib/monky-deployd
|
||||
# window before the agent's next login and hosts where the file has another group.
|
||||
# A default ACL on the directory carries the grant onto a freshly created identity file.
|
||||
if getent group ziti >/dev/null; then usermod -a -G ziti monky-deployd || true; fi
|
||||
setfacl -m u:monky-deployd:r "$IDENTITY"
|
||||
setfacl -m u:monky-deployd:rx "$IDENTITY_DIR"
|
||||
setfacl -d -m u:monky-deployd:r "$IDENTITY_DIR" 2>/dev/null || true
|
||||
setfacl -m u:monky-deployd:x /opt/openziti/etc 2>/dev/null || true
|
||||
# The grant must OUTLIVE the tunneller: ziti-edge-tunnel re-creates the identity file on every
|
||||
# controller config update with mode 0600, which sets the ACL mask to --- and defeats both the
|
||||
# named-user entry and the ziti-group read (env-dev-08, 2026-09-11..13: two days of "identity is
|
||||
# not readable" ticks while the tunnel was healthy). identity-acl.sh re-applies the entries and the
|
||||
# mask; the .path unit re-runs it whenever the directory changes.
|
||||
/usr/share/monky-deployd/identity-acl.sh "$IDENTITY_DIR"
|
||||
systemctl enable --now monky-deployd-identity-acl.path 2>/dev/null || true
|
||||
if [ -n "$BAO_CA" ]; then
|
||||
install -m 0644 "$BAO_CA" "$ETC/openbao-ca.pem"
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user