Skip to content

fix(k8s): check example ConfigMap keys are settings - #4134

Merged
dan-petty merged 3 commits into
mainfrom
fix/4093-configmap-key-walk
Nov 8, 2026
Merged

dan-petty merged 3 commits into
mainfrom
fix/4093-configmap-key-walk

Conversation

@dan-petty

Copy link
Copy Markdown
Owner

fix(k8s): check example ConfigMap keys are settings

A new test walks the keys of the example ConfigMap and reports each key that no setting declares. Most models of Settings use extra=ignore, so such a key loaded with no error before. Two rules now say that a change which removes, renames or tightens a setting must say so in the proposal and the PR comment, and must load the example ConfigMap into Settings in a test. The live ConfigMap changes first. This follows the crash of the roadmap Service on 2026-11-07, when the live ConfigMap still held two removed ladder keys.

Closes #4093

Change: openspec/changes/archive/2026-11-08-4093-check-example-configmap-keys-are-settings/
Elapsed: 1.58s

@dan-petty dan-petty added type/bug Defect, regression, or incorrect runtime behavior scope/k8s Kubernetes commands, Helm charts, pods, services, and policies labels Nov 8, 2026
@dan-petty

Copy link
Copy Markdown
Owner Author

Test record for #4093.

fail-to-pass (devops ci fail-to-pass --base origin/main, before the fix, on the test commit):

  • tests/k8s/test_k8s_configmap_keys.py: errored on base (the module devops_cli.config.setting_keys does not exist).
  • tests/invariants/test_configmap_rollout_rule.py: 2 cases failed on base (k8s/README.md, docs/ROADMAP_WORKFLOW.md hold no rule; assert 0 == 1).
  • After the fix: 4 cases in the keys module and 2 invariant cases pass.
  • Note: the ladder test shares the module import, so it errors on base too (the issue said it passes before).

Full devops ci on the final code: all 25 rows pass. The pytest row took 11m56s, over the 5 minute budget (known #3593). After the rebase onto cd2ebda, the two new test files and devops docs generate --check were run again and pass.

Rollout: this change removes, renames and tightens no setting, so the live ConfigMap needs no change. Nothing was applied to the cluster.

@dan-petty
dan-petty marked this pull request as ready for review November 8, 2026 04:41
@dan-petty
dan-petty merged commit 7935fba into main Nov 8, 2026
25 checks passed
@dan-petty
dan-petty deleted the fix/4093-configmap-key-walk branch November 8, 2026 04:42
dan-petty pushed a commit that referenced this pull request Nov 8, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.87.2](v0.87.1...v0.87.2)
(2026-11-08)


### Bug Fixes

* **k8s:** check example ConfigMap keys are settings
([7935fba](7935fba))
* **k8s:** check example ConfigMap keys are settings
([#4134](#4134))
([7935fba](7935fba))
* **roadmap:** write the body with the marks in one request
([#4130](#4130))
([9504170](9504170))
* **service:** show a state record the Service could not write
([#4128](#4128))
([cd2ebda](cd2ebda)),
closes [#4048](#4048)


### Code Refactoring

* **roadmap:** type the stage planner request
([#4124](#4124))
([d83491e](d83491e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: dan-petty-release[bot] <346998822+dan-petty-release[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope/k8s Kubernetes commands, Helm charts, pods, services, and policies type/bug Defect, regression, or incorrect runtime behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(k8s): check that the example ConfigMap keys are settings

1 participant