Skip to content

custom: add northwatch play to install and configure Northwatch#2921

Merged
berendt merged 1 commit into
mainfrom
add-northwatch-playbook
Jul 1, 2026
Merged

custom: add northwatch play to install and configure Northwatch#2921
berendt merged 1 commit into
mainfrom
add-northwatch-playbook

Conversation

@berendt

@berendt berendt commented Jul 1, 2026

Copy link
Copy Markdown
Member

Summary

  • Add a custom Ansible play playbook-northwatch.yml that installs
    Northwatch as a .deb package
    on the manager and configures it to browse, debug and monitor the
    testbed's OVN control plane.
  • This is the config-file equivalent of Northwatch's make testbed target:
    the OVN Northbound/Southbound addresses (the three control nodes,
    comma-separated for Raft failover) and the OpenStack enrichment
    credentials (mirroring the admin cloud in environments/openstack/clouds.yml)
    are rendered into /etc/northwatch/clusters.json, and the shipped
    northwatch.service is driven via /etc/default/northwatch.
  • The second play configures the OVSDB managers (TCP listener on port 6640,
    on 127.0.0.1 and the node's internal management address) on all Open
    vSwitch nodes for per-chassis OVS visibility — guarded by the presence of
    the openvswitch_db container and made idempotent via a get-manager
    comparison. This is folded in from custom: add ovs-manager play to configure OVSDB managers #2920, so custom: add ovs-manager play to configure OVSDB managers #2920 can be closed.

Relationship to #2920

The OVS-manager logic is identical to #2920 (hosts: network:compute,
openvswitch_db, dual ptcp:6640:127.0.0.1 + ptcp:6640:{{ internal_address }}
listeners, container guard, idempotent compare), so this play supersedes it.

One behavioural difference: #2920 also wired the ovs-manager play into
scripts/deploy-services.sh to run on every deploy. Here it runs on demand
as part of the Northwatch play (gated by northwatch_ovs_enabled), so the
OVSDB TCP listeners are only opened when Northwatch is actually set up. If we
want the managers configured on every deploy independent of Northwatch, that
one-line hook can be added back separately.

Notes

  • Pinned to northwatch_version: "0.5.0" (with a renovate: annotation). The
    install task downloads northwatch_${version}_${arch}.deb from the GitHub
    releases; this requires v0.5.0 to be published.
  • Northwatch has no built-in authentication; the dashboard/API listens on
    :8080 on the manager and is meant to be reached over the WireGuard/sshuttle
    VPN or an SSH tunnel.
  • Everything is overridable via play vars (version, listen address, write
    enable, OVS visibility toggle, credentials).

Test plan

osism apply --environment custom playbook-northwatch

🤖 Generated with Claude Code

Add a custom Ansible play that installs Northwatch
(https://github.com/b42Labs/northwatch) as a .deb package on the manager
and configures it to browse, debug and monitor the testbed OVN control
plane. This is the config-file equivalent of Northwatch's `make testbed`
target: the OVN Northbound/Southbound addresses and the OpenStack
enrichment credentials are rendered into /etc/northwatch/clusters.json,
and the shipped northwatch.service is driven via /etc/default/northwatch.

The second play configures the OVSDB managers (TCP listener on port 6640,
on 127.0.0.1 and the node's internal management address) on all Open
vSwitch nodes for per-chassis OVS visibility. It supersedes the standalone
ovs-manager play from #2920, so that PR can be closed.

Run with:

  osism apply --environment custom northwatch

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Christian Berendt <berendt@osism.tech>
@berendt berendt force-pushed the add-northwatch-playbook branch from 39510b4 to 6749c4b Compare July 1, 2026 06:52
@berendt berendt moved this from New to In progress in Human Board Jul 1, 2026
@berendt berendt requested a review from ideaship July 1, 2026 08:50
@berendt berendt moved this from In progress to Ready for review in Human Board Jul 1, 2026
@berendt berendt merged commit 6715121 into main Jul 1, 2026
2 checks passed
@github-project-automation github-project-automation Bot moved this from Ready for review to Done in Human Board Jul 1, 2026
@berendt berendt deleted the add-northwatch-playbook branch July 1, 2026 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants