manager: overlay generics ansible.cfg via gilt#2916
Merged
Conversation
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>
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.
Problem
The testbed's
environments/manager/ships noansible.cfg, unlike every cookiecutter-built deployment, which overlays one fromosism/generics(it setshost_key_checking = false). Thegilt.ymloverlay pulled onlyimages.ymland the render/set-versions helpers, leaving the manager environment without anansible.cfg.This breaks the new
osism update managerseed-container path (wired inansible-collection-servicesf1e7869f). That path runsosism.manager.managerfrom theosism/seedimage viaansible-playbook -i hosts, with the working directory at/opt/configuration/environments/manager. Host-key behaviour there comes solely from a cwdansible.cfg. With none present, Ansible falls back to its defaulthost_key_checking = True, soApply role manager's first SSH to the manager runs strict checking against an emptyknown_hostsand aborts:failing
testbed-updateat the final re-apply (first seen periodic-midnight buildb842f678, 2026-06-28). Deploy-time manager apply does not hit this because it runs from theosism-ansibleimage, which bakeshost_key_checking = false.Fix
Overlay
environments/manager/ansible.cfgfrom generics likeimages.yml, so the testbed's manager environment matches a standard cookiecutter-built deployment and tracks the single generics source.🤖 Generated with Claude Code