Skip to content

druks doctor fails on a current drukbox: the SDK reads the renamed tailnet field #971

Open

Description

@czpython

What happens

druks doctor ends with:

✗  drukbox                   unreachable: 'tailscale_enabled'
doctor: 1 check(s) failed (1 pending operator setup).

against a drukbox at or after czpython/drukbox#78, which renamed the /doctor payload field tailscale_enabled to tailnet. drukbox itself reports every check ok. The deploy runbook ends with druks doctor, so every deploy now exits non-zero after it has succeeded.

Why

The drukbox check in backend/druks/doctor.py calls api.doctor() of drukbox-python-sdk, pinned at >=0.4.0. Version 0.4.0, the newest on PyPI, reads the old key and raises KeyError, which the check reports as "unreachable".

Proposal

Move the pin to the SDK release that reads tailnet, czpython/drukbox-python-sdk's fix is open. Until then an operator on a current drukbox has no working druks doctor.

Also: the deploy docs pair druks main with drukbox latest. A drukbox change that moves the SDK contract reaches every install on its next deploy, before druks moves its pin. A pinned drukbox image tag in the compose files would make the two move together.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions