vps

  • The staging environment that was lying

    It passed on staging four times and failed in production four times. The same code, a different outcome, and five differences nobody had enumerated.

  • State locking, and the two applies that raced

    Two applies against one state file at the same time produce a state that describes neither result, and the backend lock is the only thing that prevents it.…

  • terraform import for what already exists

    Adopting Terraform on infrastructure that already exists is mostly import, and import brings a resource into state without writing any configuration for it. The workflow is import, plan,…

  • terraform plan output leaks secrets into the log

    A plan prints the values it intends to write, and a pipeline that posts the plan to a pull request posts them to anybody who can see the…

  • The search cluster whose licence changed underneath us

    A licence change in January is a legal event with an infrastructure bill attached. Four options, and the one that is not on the list.

  • Docker 20.10 and the cgroup transition

    A release with rootless mode and cgroup v2, and a container that reported the host memory limit. Where the numbers come from and which are lies.

  • A self-hosted runner, and what it is allowed to reach

    The hosted runner cannot reach the private network, which is the whole problem — and a runner inside it is a machine running other people’s code.

  • Ubuntu 20.04 and the netplan that is now normal

    20.04 arrived in April and netplan is no longer the new thing — which means the older configuration people still copy from notes does nothing at all. netplan…

  • Backups, restores, and the number nobody had measured

    The dump had run nightly for two years and had never been restored. A successful exit code is not a successful backup, and nobody could say how long…

  • Deploy on push, on a platform you do not control

    The same deployment problem, a second time, on a different platform. A push notification is not authentication, and HTTP has a timeout.