Skip to content

manager: overlay generics ansible.cfg via gilt#2916

Merged
berendt merged 1 commit into
mainfrom
fix-manager-ansible-cfg-overlay
Jun 28, 2026
Merged

manager: overlay generics ansible.cfg via gilt#2916
berendt merged 1 commit into
mainfrom
fix-manager-ansible-cfg-overlay

Conversation

@ideaship

@ideaship ideaship commented Jun 28, 2026

Copy link
Copy Markdown
Contributor

Problem

The testbed's environments/manager/ ships no ansible.cfg, unlike every cookiecutter-built deployment, which overlays one from osism/generics (it sets host_key_checking = false). The gilt.yml overlay pulled only images.yml and the render/set-versions helpers, leaving the manager environment without an ansible.cfg.

This breaks the new osism update manager seed-container path (wired in ansible-collection-services f1e7869f). That path runs osism.manager.manager from the osism/seed image via ansible-playbook -i hosts, with the working directory at /opt/configuration/environments/manager. Host-key behaviour there comes solely from a cwd ansible.cfg. With none present, Ansible falls back to its default host_key_checking = True, so Apply role manager's first SSH to the manager runs strict checking against an empty known_hosts and aborts:

fatal: [testbed-manager]: UNREACHABLE! => {"changed": false,
  "msg": "Failed to connect to the host via ssh: Host key
  verification failed.", "unreachable": true}

failing testbed-update at the final re-apply (first seen periodic-midnight build b842f678, 2026-06-28). Deploy-time manager apply does not hit this because it runs from the osism-ansible image, which bakes host_key_checking = false.

Fix

Overlay environments/manager/ansible.cfg from generics like images.yml, so the testbed's manager environment matches a standard cookiecutter-built deployment and tracks the single generics source.

🤖 Generated with Claude Code

The testbed's environments/manager/ shipped no ansible.cfg, unlike every
cookiecutter-built deployment, which overlays one from osism/generics
(it sets host_key_checking = false). The gilt.yml overlay pulled only
images.yml and the render/set-versions helpers from generics, leaving
the manager environment without an ansible.cfg.

This breaks the new "osism update manager" seed-container path. That
path runs osism.manager.manager from the osism/seed image via
"ansible-playbook -i hosts" with the working directory at
/opt/configuration/environments/manager, and host-key behaviour there
comes solely from a cwd ansible.cfg. With none present, Ansible falls
back to its default host_key_checking = True, so Apply role manager's
first SSH to the manager runs strict checking against an empty
known_hosts and aborts with "Host key verification failed", failing
testbed-update at the final re-apply. Deploy-time manager apply does
not hit this because it runs from the osism-ansible image, which bakes
host_key_checking = false.

Overlay environments/manager/ansible.cfg from generics like images.yml
so the testbed's manager environment matches production and tracks the
single generics source. The companion osism/container-images change
that bakes a fallback ansible.cfg into the seed image is defense in
depth; this aligns the testbed config itself.

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 June 28, 2026 12:23
@ideaship ideaship requested a review from berendt June 28, 2026 12:27
@berendt berendt merged commit b08866c into main Jun 28, 2026
3 checks passed
@berendt berendt deleted the fix-manager-ansible-cfg-overlay branch June 28, 2026 20:06
@github-project-automation github-project-automation Bot moved this from Ready to Done in Human Board Jun 28, 2026
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