Repository navigation
interfaces: Mark ceph-ansible keys, quote the loopback0 fallback - #332
Merged
Merged
Conversation
099-interfaces.yml sets monitor_interface and radosgw_interface for every host, under a header that only says they come from ceph-ansible. On a cephadm deployment they look like the knobs that place the monitors and RGW daemons, but no cephadm play reads them: - cephadm-bootstrap.yml and cephadm-hosts.yml take each host's address from monitor_address, falling back to the default IPv4 address; - cephadm-rgw.yml fails when an RGW host has no radosgw_address, and its message says radosgw_interface is not supported, because resolving an interface name needs facts the play does not gather. The keys stay: OSISM 11 still manages existing ceph-ansible clusters (the reef and squid ceph-ansible images, --ceph-backend), which read them. Add a comment saying that only ceph-ansible reads them and what the cephadm plays use instead. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Roger Luethi <luethi@osism.tech>
console_interface, hosts_interface, management_interface and
k3s_interface fall back to loopback0 when internal_interface is unset:
internal_interface|default(loopback0)
Unquoted, loopback0 is a variable name, and no such variable exists.
With internal_interface unset the expression is an undefined-variable
error ("'loopback0' is undefined") instead of the intended fallback.
The form dates from 8dda210 (2021, then default(eth0)) and was carried
through 410dff3, 0ce1810 and 8772eb3 (eth0 -> loopback0); the string
was always the intent, matching network_interface's own default.
Quote it. Hosts that set internal_interface render as before. Hosts
that do not now get loopback0, the interface OSISM uses for
network_interface, which is right on routed (BGP-to-host) hosts.
cilium_iface and kube_vip_iface follow k3s_interface. On a host
without a loopback0 interface the consumers (the hosts role and the
manager's *_host addresses in defaults/manager/000-defaults.yml,
which look up ansible_<interface>) still fail, now at the fact lookup.
Assisted-by: Claude:claude-opus-5-5
Signed-off-by: Roger Luethi <luethi@osism.tech>
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.
Two small fixes to
all/099-interfaces.yml.Mark the ceph-ansible keys.
monitor_interfaceandradosgw_interfaceare set for every host, but only ceph-ansible reads them. The cephadm plays takemonitor_addressandradosgw_addressinstead;cephadm-rgw.ymlfails when an RGW host has noradosgw_address. The keys stay because OSISM 11 still manages existing ceph-ansible clusters. A comment now says so.Quote the loopback0 fallback.
console_interface,hosts_interface,management_interfaceandk3s_interfaceuseinternal_interface|default(loopback0). Unquoted,loopback0is a variable name, so withinternal_interfaceunset the expression fails with "'loopback0' is undefined" instead of falling back. Quoting it gives the intendedloopback0, matchingnetwork_interface. Hosts that setinternal_interfacerender as before.🤖 Generated with Claude Code