Skip to content

NGF: Improve upgrade docs - #2285

Closed
salonichf5 wants to merge 1 commit into
nginx:mainfrom
salonichf5:fix/upgrade-docs
Closed

salonichf5 wants to merge 1 commit into
nginx:mainfrom
salonichf5:fix/upgrade-docs

Conversation

@salonichf5

Copy link
Copy Markdown
Contributor

Proposed changes

Improves upgrade docs to avoid running into issues when doing NGF upgrade.

Checklist

Before sharing this pull request, I completed the following checklist:

Footnotes

  1. Potentially sensitive information includes personally identify information (PII), authentication credentials, and live URLs. Refer to the style guide for guidance about placeholder content.

@salonichf5
salonichf5 requested a review from a team as a code owner September 15, 2026 16:02
@github-actions github-actions Bot added documentation Improvements or additions to documentation product/ngf Issues related to NGINX Gateway Fabric labels Sep 15, 2026

#### Upgrade considerations

When upgrading, pods roll one at a time. During this window, the new control plane may push configurations to pods still running the previous image version, causing temporary validation errors.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We technically should have fixed this problem a long time ago in our controller code...it shouldn't push config to pods that have a different image than the controller.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, that does make sense. I thought its the mismatch is causing the issue

--set nginx.kind=daemonSet \
--set nginx.service.type=NodePort \
--set nginx.service.externalTrafficPolicy=Local \
--set nginx.image.tag=2.7.0

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should automatically be handled just by upgrading, because it's already hardcoded in the upgraded chart.

@promptless promptless Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for improving the upgrade docs, @salonichf5 — this "Upgrade considerations" section captures a real and confusing failure mode, and the recommended explicit-tag command is genuinely useful. I ran the change against the F5 Technical Writing Style Guide and verified the technical claims against the NGINX Gateway Fabric source. The content is accurate; the notes below are minor.

Style findings

  • conditional-sentences (line 131): state the condition before the outcome — see the inline comment.
  • Minor, optional (grouped so this isn't a wall of nits):
    • sentence-length (line 142): "For example, if you have a DaemonSet and NodePort set in NginxProxy, make sure to specify that in your upgrade command:" runs about 21 words; the task limit is 20. Splitting off the "For example" clause brings it under.
    • pronouns (line 142): "specify that" — naming what to specify (the NginxProxy settings) removes the ambiguous reference.

Technical accuracy — for a subject matter expert to confirm (I verified against the NGF source but did not change any technical content):

  • The core claims all check out against NGF v2.7.0 and v2.6.7: the Helm values and casing (nginx.kind=daemonSet, nginx.service.type, nginx.service.externalTrafficPolicy, nginx.image.tag), the move of worker_processes into /etc/nginx/main-includes/main.conf in 2.7.0, the /etc/nginx/nginx.conf:4 duplicate-directive error, and both image tags.
  • One item to confirm: line 129 frames the duplicate-directive error as a temporary artifact of the rolling window ("temporary validation errors"). Upstream issue nginx/nginx-gateway-fabric#5883 reports the same error persisting on freshly started 2.7.0 data plane pods, not only during the transient roll. Please confirm with the NGF team whether the error clears once every pod reaches 2.7.0. If it can persist, softening "temporary" would keep a reader from waiting for it to self-resolve instead of applying the explicit-tag fix.

Reading level: The section reads at roughly grade 9–10, which fits the operator audience. The main complexity factors are the longer sentence on line 142 and a few dense noun phrases ("data plane image tag"). The line-142 split and the line-131 reorder bring it into the grade 8–9 target.

Categories checked: voice-and-tone and grammar in full; punctuation, formatting, procedures, and terminology wherever the added text touches them (lists, code blocks, headings, defined terms, numbers, conditional sentences). accessibility, media, and security were checked and are not applicable — no images, screenshots, or sensitive data, so placeholders aren't required. The quoted log line is command output, not an authored error string.

Submitting this as a review comment, not a change request — none of the style notes block merge, and the merge decision is the maintainer's. Nice addition.


When upgrading, pods roll one at a time. During this window, the new control plane may push configurations to pods still running the previous image version, causing temporary validation errors.

The Helm chart may not automatically update the data plane image tag if it was previously set or defaulted. This can result in:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Style (conditional-sentences): F5 style puts the condition first, then the outcome, so a reader learns when the caveat applies before reading it. Consider reordering:

If the image tag for the data plane was previously set or defaulted, the Helm chart may not update it automatically.

This order also breaks up the four-word noun cluster "data plane image tag" (noun-clusters, three-word max).

@salonichf5 salonichf5 closed this Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation product/ngf Issues related to NGINX Gateway Fabric

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants