Skip to content

stack-single 1.1.35

Choose a tag to compare

@TAIPANBOX TAIPANBOX released this 15 Oct 13:19
· 35 commits to main since this release
8b9351f

stack-single 1.1.35

The notifier moves to heraldyx v0.7.0. This tag also adds ./install.sh status, a read-only
check of a running box, and a Docker healthcheck on the four services the installer probes on
their health path. Nothing else moves: the console, TokenFuse and the other pins are the ones
v1.1.34 shipped.

A default install starts no new container. The notifier does send one new kind of mail: once a
recipient is configured, it sends a daily pulse (see below).

What moves

  • heraldyx v0.6.0 -> v0.7.0 (HERALDYX_IMAGE, the heraldyx service at compose.yaml:286,
    and components.json). heraldyx 0.7.0 is tag v0.7.0 on 6f9971d, its release notes are
    docs/releases/v0.7.0.md in that repository, and its image index digest is
    sha256:0774468fb06c78dc0172f99f6c7fb024423d52921c7051ddd0b0d684f22b9ef7 (amd64 and arm64). The
    points an operator meets:
    • A daily pulse. Once per 24 hours the notifier sends one mail that says it is running and
      gives the numbers it saw. A day with a daily summary carries the pulse in that summary instead,
      so there is still one mail, not two. It is on by default once a recipient is set. Set
      HERALDYX_PULSE_HOURS=0 in .env to turn it off; the compose file now passes the variable
      through, default 24 (compose.yaml, the heraldyx service).
    • Acknowledgements. --ack <key> --for 4h --by <name> holds alerts below critical about one
      condition for a bounded time; --unack <key> ends it and --acks lists what is in force. A
      critical is always sent.
    • Maintenance windows. --maintenance <duration> --note <text> --by <name> opens one by hand,
      with --scope <source> to hold one source only, and --maintenance-end closes it. A window
      always sends a closing mail.
    • Quiet hours (HERALDYX_QUIET, HERALDYX_TZ) are in heraldyx 0.7.0 and off by default. Set
      HERALDYX_QUIET=HH:MM-HH:MM and an IANA HERALDYX_TZ in .env to hold alerts below critical in
      those hours; the compose file passes both through, empty by default. The README section "The
      notifier's daily pulse and quiet hours" documents the three settings.
    • The acknowledgement and window commands write control.json beside the notifier's state file,
      on the heraldyxstate volume. That volume is owned by uid 65532, the user the notifier runs as
      (init-volumes, compose.yaml:68), so the file can be written.
    • No variable is required by heraldyx 0.7.0. Nothing in .env changes.
  • ./install.sh status (#128). It runs the checks the install runs at its end, against a stack
    that is already up, and prints one line per check. It exits 0 when every check passes and 1 when
    one fails. It installs nothing, pulls no image, starts, stops or restarts no container, issues no
    device and sends no mail. The checks that would write to the event bus, or send a call the stack
    records, print as skip and run only in the install. If the box has no .env, it says so and
    stops. See the README section "Checking an installed box again".
  • Healthchecks on four services (#128). Docker now watches tokenfuse-gateway,
    tokenfuse-gateway-openai (when the OpenAI door is on), tokenfuse-cloud and console. Each
    probes the same /healthz the installer probes, with bash, since those images carry bash and no
    HTTP client. docker compose ps shows healthy or unhealthy. A healthcheck only reports:
    nothing restarts a service because of it. wardryx, idryx, typryx and vouchryx have no
    healthcheck, because their images are distroless. ./install.sh status is the check that covers
    them.
  • CI (#128). Each install leg in .github/workflows/install.yml ends with install.sh status,
    and checks that the read changed nothing.
  • heraldyx pin (#129). The one HERALDYX_IMAGE pin above, merged as 4342ca6.

Measured

Read when these notes were written, not copied from the pull requests:

  • docker buildx imagetools inspect ghcr.io/taipanbox/heraldyx:v0.7.0: the index digest above,
    listing linux/amd64 and linux/arm64.
  • Tag v0.7.0 in TAIPANBOX/heraldyx resolves to 6f9971d, the merge of heraldyx #111.

Upgrading

  • The notifier. The image is the compose default, so pulling and restarting the one service
    moves it: docker compose pull heraldyx and then docker compose up -d heraldyx. The state
    file and the dispatch journal persist across the restart (heraldyx invariant 5). Rolling back
    to heraldyx 0.6.0 with a 0.7.0 state file was not run.
  • The pulse is new mail. A box with ALERT_TO set starts getting one pulse mail every 24 hours
    after the restart. The mail says the notifier is alive; its absence is the signal to look. To
    keep the old silence, set HERALDYX_PULSE_HOURS=0 in .env and restart the notifier.
  • ./install.sh status needs root, or a user in the docker group, and a .env at the stack
    directory. It changes nothing, so it is safe to run on a live box.

Not proven

  • ./install.sh status and the four healthchecks were run by CI's install legs on Ubuntu, as
    #128 and #129 record. They were not run on a live box for this tag.
  • The pulse, an acknowledgement and a maintenance window were not run in a running stack for this
    tag. heraldyx 0.7.0's own notes say what was measured for those.
  • The upgrade commands above were not run on a box for this tag.