Skip to content

manager: define internal_interface for seed path#2922

Merged
berendt merged 1 commit into
mainfrom
fix-seed-manager-internal-interface
Jul 2, 2026
Merged

manager: define internal_interface for seed path#2922
berendt merged 1 commit into
mainfrom
fix-seed-manager-internal-interface

Conversation

@ideaship

@ideaship ideaship commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Problem

The osism_api_host override in the manager environment
(environments/manager/configuration.yml) dereferences
internal_interface, which is only defined in
inventory/group_vars/testbed-managers.yml. The seed-container path
(osism update manager) runs the manager play with the reduced
environments/manager inventory and extra-var set, which does not
load that group_vars file.

As a result internal_interface is undefined, osism_api_host
collapses to AnsibleUndefined, and the first ipwrap site in
docker-compose.yml.j2 raises:

AnsibleFilterError: Unrecognized type <class ...AnsibleUndefined> for ipwrap filter <value>

failing TASK [osism.services.manager : Copy docker-compose.yml file]
during manager upgrades via the seed path, while the orchestrator
deploy path (full inventory) works.

This is the next layer of the seed-path onion after the host-key
(#2916) and operator-key (#2917) fixes, which advanced the play far
enough to reach this template task.

Fix

Define internal_interface in
environments/manager/configuration.yml, mirroring the group_vars
definition, so osism_api_host resolves in the seed-path variable
context. The referenced local fact
(ansible_local.testbed_network_devices.management) is installed on
the manager during bootstrap and is available whenever facts are
gathered, so no additional inventory or fact wiring is required.

This does not affect the orchestrator path, which does not load this
file and keeps using the group_vars definition.

The osism_api_host override in the manager environment dereferences
internal_interface, but that variable is only defined in
inventory/group_vars/testbed-managers.yml. The seed container path
(osism update manager) runs the manager play with the reduced
environments/manager inventory and extra-var set, which does not load
that group_vars file. As a result internal_interface is undefined,
osism_api_host collapses to AnsibleUndefined, and the first ipwrap
site in docker-compose.yml.j2 raises:

  AnsibleFilterError: Unrecognized type
  <class ...AnsibleUndefined> for ipwrap filter <value>

failing "Copy docker-compose.yml file" during manager upgrades via the
seed path, while the orchestrator deploy path (full inventory) works.

Define internal_interface in environments/manager/configuration.yml,
mirroring the group_vars definition, so osism_api_host resolves in the
seed-path variable context. The referenced local fact
(ansible_local.testbed_network_devices.management) is installed on the
manager during bootstrap and is available whenever facts are gathered,
so no additional inventory or fact wiring is required. This does not
affect the orchestrator path, which does not load this file and keeps
using the group_vars definition.

Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Roger Luethi <luethi@osism.tech>
@ideaship ideaship marked this pull request as ready for review July 1, 2026 11:12
@berendt berendt self-requested a review July 1, 2026 11:18
@berendt berendt moved this from New to In review in Human Board Jul 1, 2026
@berendt berendt merged commit e2f1136 into main Jul 2, 2026
3 checks passed
@github-project-automation github-project-automation Bot moved this from In review to Done in Human Board Jul 2, 2026
@berendt berendt deleted the fix-seed-manager-internal-interface branch July 2, 2026 07:23
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.

3 participants