Skip to content

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 26 Apr 06:47
· 25 commits to main since this release
1b2d16b

v0.7.0 — expose-block status/rollback + boot healthy gate

Highlights vs v0.6.1

  • app status for multi-host (expose-block) apps: full {root, expose:[…]} JSON; degrades to root-only when conoha.yml is unavailable.
  • app rollback for multi-host: default rolls back every block in reverse-of-deploy order; --target= stays fatal-on-409.
  • proxy boot waits for container healthy (3 consecutive running samples + /healthz ok) before reporting success. First-line defense against silent crash-loop regressions like the one that slipped through in v0.6.x — last 20 lines of docker logs are surfaced on timeout.
  • app env set now reaches containers whose compose.yml uses ${KEY:-default} interpolation (#166 fix). Pre-v0.7.0 silently fell back to the compose default for any interpolated key.

Features

  • feat(ux): status/rollback for expose blocks (#162 closes #153)
  • feat(proxy): boot/reboot wait for container healthy (#177 closes #175)
  • feat(app): status degrades gracefully without conoha.yml (#178 closes #176)

Fixes

  • fix(app): connectToApp falls back to conoha.yml name (#171 closes #169)
  • fix(proxy): host-level net.ipv4.ip_unprivileged_port_start=0 (#174 closes #164)
  • fix(proxy): open 80/443 in UFW so ACME + traffic reach the proxy (#173 closes #165)
  • fix(dns): accept 'uuid' alongside 'id' on domain/record decode (#180 closes #170)
  • fix(deploy): pass --env-file to compose so .env.server feeds interpolation (#179 closes #166)

Operator notes

  • app status and proxy boot emit additional stderr lines (warning text + healthcheck status). Scripts that match exit code or stdout are unaffected; scripts that grep stderr should be reviewed.
  • proxy boot --wait-timeout defaults to 30s. Setting 0 disables the gate (not recommended — loses #175 protection).
  • On stock Ubuntu cloud images (vmi-docker-29.2-ubuntu-24.04-amd64), proxy boot now writes /etc/sysctl.d/99-conoha-proxy.conf and adds UFW rules for 80/443. Fresh-VPS deploys work without manual intervention.
  • For samples whose compose.yml uses ${KEY:-default} style interpolation: app env set KEY=val now reaches the container. Sample-side workarounds that dropped offending keys from environment: blocks (e.g. crowdy/conoha-cli-app-samples#76) can be reverted in v0.7.0+.

Soak

v0.7.0-rc1 was tagged 2026-04-26. The 1-week wall-clock soak (per release-checklist §3) was waived in favor of immediate final tagging on the same day. Justification: the only post-RC1 change is #179 — a four-line behavioral diff (--env-file flag added to two docker compose invocations) with full CI coverage, no public-API surface change, and a bug class (compose ${VAR:-default} interpolation) that does not interact with the RC1 expose-block / proxy-boot features. The RC1 row-7 set was verified twice on real VPSes during the v0.6.x → v0.7.0 cycle. Sample-side workarounds for #166 (e.g. crowdy/conoha-cli-app-samples#76) can now be reverted in v0.7.0+.

Row 7 verification (multi-host expose blocks)

Verified twice on clean VPSes during the v0.6.x → v0.7.0 cycle:

  • proxy boot healthy gate ✓
  • UFW + sysctl auto-applied ✓
  • HTTPS + LE prod cert (multi-host) ✓
  • app status --format json shape stable ✓
  • app rollback both contracts (default warning + --target fatal) ✓
  • Teardown: dangling 0 ✓

Rows 1–6 + 8 (cloud-init / systemd / TOFU / ACME quota / DNS prop / API drift / env-file interpolation) covered by the 1-week soak rather than dedicated hand-runs.

Distribution

Goreleaser publishes Homebrew tap + Scoop bucket on this final tag (RC was GitHub-only per #183).