openstack: document how overlays are matched and merged - #1042
Merged
Merged
Conversation
✅
|
| Descriptor | Linter | Files | Fixed | Errors | Max errors | Warnings | Elapsed time |
|---|---|---|---|---|---|---|---|
| ✅ ACTION | actionlint | 5 | 0 | 0 | 0.03s | ||
| ✅ JSON | jsonlint | 4 | 0 | 0 | 0.07s | ||
| ✅ JSON | prettier | 4 | 0 | 0 | 0.43s | ||
| ✅ JSON | v8r | 4 | 0 | 0 | 6.77s | ||
| ✅ MARKDOWN | markdownlint | 169 | 0 | 0 | 1.95s | ||
| ✅ MARKDOWN | markdown-table-formatter | 169 | 0 | 0 | 0.3s | ||
| ✅ REPOSITORY | betterleaks | yes | no | no | 0.63s | ||
| ✅ REPOSITORY | checkov | yes | no | no | 16.89s | ||
| ✅ REPOSITORY | git_diff | yes | no | no | 0.07s | ||
| ✅ REPOSITORY | secretlint | yes | no | no | 3.06s | ||
| ✅ REPOSITORY | trufflehog | yes | no | no | 3.04s | ||
| ✅ SPELL | codespell | 179 | 0 | 0 | 0.52s | ||
| lychee | 179 | 3 | 0 | 26.92s | |||
| ✅ YAML | prettier | 6 | 0 | 0 | 0.29s | ||
| ✅ YAML | v8r | 6 | 0 | 0 | 6.48s | ||
| ✅ YAML | yamllint | 6 | 0 | 0 | 0.47s |
Detailed Issues
⚠️ SPELL / lychee - 3 errors
📝 Summary
---------------------
🔍 Total.........1099
🔗 Unique.........833
✅ Successful....1023
⏳ Timeouts.........0
🔀 Redirected.......5
👻 Excluded........73
❓ Unknown..........0
🚫 Errors...........3
⛔ Unsupported......3
Errors in docs/guides/deploy-guide/services/openstack.md
[ERROR] https://www.openstack.org/software/project-navigator/openstack-components#openstack-services (at 14:5) | Connection failed. Check network connectivity and firewall settings
Errors in docs/release-notes/osism-7.md
[ERROR] https://www.openstack.org/software/openstack-bobcat (at 978:38) | Connection failed. Check network connectivity and firewall settings
Errors in docs/release-notes/osism-8.md
[ERROR] https://www.openstack.org/software/openstack-caracal (at 223:38) | Connection failed. Check network connectivity and firewall settings
Hint: Followed 5 redirects. You might want to consider replacing redirecting URLs with the resolved URLs. Use verbose mode (`-v`/`-vv`) to see redirection details.
See detailed reports in MegaLinter artifacts
Your project could benefit from a custom flavor, which would allow you to run only the linters you need, and thus improve runtime performances. (Skip this info by defining FLAVOR_SUGGESTIONS: false)
- Documentation: Custom Flavors
- Command:
npx mega-linter-runner@10.0.0 --custom-flavor-setup --custom-flavor-linters ACTION_ACTIONLINT,JSON_JSONLINT,JSON_V8R,JSON_PRETTIER,MARKDOWN_MARKDOWNLINT,MARKDOWN_MARKDOWN_TABLE_FORMATTER,REPOSITORY_CHECKOV,REPOSITORY_GIT_DIFF,REPOSITORY_BETTERLEAKS,REPOSITORY_SECRETLINT,REPOSITORY_TRUFFLEHOG,SPELL_LYCHEE,SPELL_CODESPELL,YAML_PRETTIER,YAML_YAMLLINT,YAML_V8R

Show us your support by starring ⭐ the repository
The overlay section explains which locations are searched, but not what happens when a file does not match one of them. Nothing does: the file is not read, no warning is emitted, and the deployment succeeds while the settings have no effect. Operators therefore have no signal distinguishing "my override was applied" from "my override was ignored", and the failure is easy to hit because near-miss names look plausible. Both examples given are ones seen in the wild: an ml2_conf.ini placed at the overlays top level instead of under neutron/, and a neutron/ml2.conf that is simply a misspelling of ml2_conf.ini. In both cases the DNS and MTU settings they contained silently did nothing. Add a warning admonition next to the existing description of the supported locations, and suggest verifying the rendered configuration under /etc/kolla/SERVICENAME/ rather than assuming the overlay took effect. Assisted-by: Claude:claude-opus-5 Signed-off-by: Roger Luethi <luethi@osism.tech>
The customization section never says what happens to the keys an overlay does not set. It shows single-option examples, which implies a merge, but the only sentence that names the mechanism is near the end and reads "This method of merging configuration sections is supported for all services using oslo.config" -- and its job there is to introduce the exception, ending on "In these cases OSISM supports overriding the entire config file". That is the sole occurrence of "entire config file" in the section, so a reader scanning for the rule can come away believing an overlay has to be a full drop-in replacement of the generated file. That reading is not hypothetical. It came up on review of a change that documents a two-line [ovn] overlay for neutron, from someone who knows the codebase well: the worry was that setting one key would mean maintaining a copy of the whole file and losing the generated values. Say it plainly and up front instead, before the first example, so the rule is stated where it is needed rather than inferred from the examples. Kolla merges the role template and the overlay through merge_configs, key by key, so an overlay carries only the settings being changed. Reword the closing sentence as well, so whole-file replacement reads as what it is -- the exception for INI files that cannot be merged -- rather than as something OSISM offers alongside merging. Assisted-by: Claude:claude-opus-5 Signed-off-by: Roger Luethi <luethi@osism.tech>
ideaship
force-pushed
the
doc-gap-overlay-exact-names
branch
from
August 30, 2026 11:29
e886970 to
8aa4725
Compare
ideaship
marked this pull request as ready for review
August 30, 2026 11:33
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.
What
Two gaps in how the OpenStack configuration guide explains overlays.
Why
Exact matching. The section lists which locations are searched, but not what happens when a file matches none of them. Nothing does: the file is not read, no warning is emitted, and the deployment succeeds while the settings have no effect. Operators get no signal distinguishing "my override was applied" from "my override was ignored", and near-miss names look plausible.
Merging. The section never says what happens to the keys an overlay does not set. It shows single-option examples, which implies a merge, but the only sentence naming the mechanism sits near the end and its job there is to introduce the exception — ending on "In these cases OSISM supports overriding the entire config file". That is the sole occurrence of "entire config file" in the section, so a reader scanning for the rule can come away believing an overlay must be a full drop-in replacement.
That reading is not hypothetical: it came up in review of the neutron change stacked on top of this one, where a two-line
[ovn]overlay was read as requiring a maintained copy of the whole generated file.How
/etc/kolla/SERVICENAME/rather than assuming.Markdown-only changes to an existing page;
yarn buildhas not been run locally.Related
Bottom of a two-PR stack. The neutron change on top cross-references the section this PR repairs, so this one merges first:
🤖 Generated with Claude Code