docs truth: a shipped version claimed a change it never made - #525
Merged
Conversation
Found by the docs writer treating the CHART as source of truth rather than the README -- which is exactly what that rule is for. **postgres-multi-location 1.1.0's headline change never shipped.** Its README says "1.1.0 widens the tolerance" and describes moving worst-case failover from 45 to 60 seconds. The chart ships `ttl: 45` / `loop_wait: 10` / `retry_timeout: 15` -- and so do 1.0.3 and 2.0.0, byte for byte. The README's own `edit-config` remediation command sets 45/10/15, contradicting the paragraph three lines above it, and the published CHANGELOG entry repeats the claim. So a user reading either doc believes their cluster tolerates a 60-second etcd outage when it gives up at 15. Both are corrected: the README now states what is actually shipped and explains widening as a deliberate trade left to the operator, and the CHANGELOG entry carries a dated correction rather than being silently rewritten -- it was published, people may have read it. Also fixes a stale key name in `grafana-multi-location` 2.0.0's values.yaml, which still told users a location "must be one of `global.gvc.locations`" -- a key the conversion removed. Comment-only; `helm template` output verified byte-identical, so both are in-place fixes rather than new versions. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The 2.0.0 README still says the restore has not been executed against this template. The test round executed it end to end -- 90 KB dump, 8 tables, database dropped, restored, application working on the restored data -- so the caveat now understates what is known and the docs page says the opposite. It also needs a requirement the round found the hard way: the dump comes from postgres:18, whose pg_dumpall emits \restrict directives that older clients reject while psql EXITS 0. It succeeded only because those lines were not load-bearing. The command now carries -v ON_ERROR_STOP=1. README-only; helm template output verified byte-identical. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Three documentation corrections, all in place —
helm templateoutput is byte-identical for each, verified.Found by the docs writers treating the chart as source of truth rather than the README, which is exactly what that rule exists for.
1. postgres-multi-location 1.1.0's headline change never shipped
Its README says "1.1.0 widens the tolerance" and describes moving worst-case failover from 45 to 60 seconds. The chart ships
ttl: 45/loop_wait: 10/retry_timeout: 15— and so do 1.0.3 and 2.0.0, byte for byte:The README's own
edit-configremediation command sets 45/10/15, contradicting the paragraph three lines above it, and the published CHANGELOG entry repeats the claim.So a user reading either doc believes their cluster tolerates a 60-second etcd outage when it gives up at 15. That is a false operational guarantee about failover, not a doc nit.
The README now states what is actually shipped and frames widening as a deliberate trade left to the operator, with Patroni's
loop_wait + 2 * retry_timeout <= ttlconstraint. The CHANGELOG entry carries a dated correction rather than being silently rewritten — it was published and people may have read it.2. grafana-multi-location 2.0.0 tells users about a key that no longer exists
values.yamlstill said a location "must be one ofglobal.gvc.locations" — a key the conversion removed. Comment-only.3. cpln-advisor 2.0.0's restore caveat is now false, and the command is unsafe
The README says the restore "has not been executed against this template". The test round executed it end to end — 90 KB dump, 8 tables, database dropped, restored, application working on the restored data — so the docs page and the README now disagree, with the README being the stale one.
It also needs a requirement the round found the hard way: the dump comes from
postgres:18, whosepg_dumpallemits\restrictdirectives that older clients reject whilepsqlexits 0. It succeeded only because those lines were not load-bearing. The command now carries-v ON_ERROR_STOP=1, because a silently-successful restore is the dangerous case.🤖 Generated with Claude Code