custom: add northwatch play to install and configure Northwatch#2921
Merged
Conversation
4972615 to
39510b4
Compare
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>
39510b4 to
6749c4b
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
playbook-northwatch.ymlthat installsNorthwatch as a
.debpackageon the manager and configures it to browse, debug and monitor the
testbed's OVN control plane.
make testbedtarget:the OVN Northbound/Southbound addresses (the three control nodes,
comma-separated for Raft failover) and the OpenStack enrichment
credentials (mirroring the
admincloud inenvironments/openstack/clouds.yml)are rendered into
/etc/northwatch/clusters.json, and the shippednorthwatch.serviceis driven via/etc/default/northwatch.on
127.0.0.1and the node's internal management address) on all OpenvSwitch nodes for per-chassis OVS visibility — guarded by the presence of
the
openvswitch_dbcontainer and made idempotent via aget-managercomparison. 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, dualptcp: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.shto run on every deploy. Here it runs on demandas part of the Northwatch play (gated by
northwatch_ovs_enabled), so theOVSDB 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
northwatch_version: "0.5.0"(with arenovate:annotation). Theinstall task downloads
northwatch_${version}_${arch}.debfrom the GitHubreleases; this requires v0.5.0 to be published.
:8080on the manager and is meant to be reached over the WireGuard/sshuttleVPN or an SSH tunnel.
enable, OVS visibility toggle, credentials).
Test plan
🤖 Generated with Claude Code