Skip to content

docs: Cleaned up container document - #2197

Open
Diekos wants to merge 12 commits into
vyos:rollingfrom
Diekos:containerdocs
Open

docs: Cleaned up container document#2197
Diekos wants to merge 12 commits into
vyos:rollingfrom
Diekos:containerdocs

Conversation

@Diekos

@Diekos Diekos commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Change Summary

Cleaned up container document
Added more explicit explanation to some items
Added note on Global State Policies and container networks about accept-invalid
Changed Zabbix configuration example because it used port publishing which can't be used with container networks
Added Adguard Home configuration example

Related Task(s)

Related PR(s)

Backport

Checklist:

Added more explicit explanation to some items
Added note on Global State Policies and container networks about
accept-invalid
Changed Zabbix configuration example because it used port publishing
which can't be used with container networks
Added Adguard Home configuration example
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@Diekos

Diekos commented Aug 12, 2026

Copy link
Copy Markdown
Contributor Author

I have read the CLA Document and I hereby sign the CLA

@mergify mergify Bot added the rolling label Aug 12, 2026
@mergify mergify Bot assigned Diekos Aug 12, 2026
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 3m 58s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, src/conf_mode/container.py) and firewall/global-options.xml.i.

Issues

ERROR — health-check retries CLI leaf is misnamed (pre-existing, not introduced by this PR)

  • File: docs/configuration/container/index.md:274
  • Doc says: set container name <name> health-check retries <retries>
  • Source: container.xml.in:623 defines <leafNode name="retry"> (singular); container.py:511 reads container_config['health_check']['retry']. The plural form will not commit.
  • Since this line is unchanged by the PR it can't be inline-commented, but while cleaning up this document it would be a good time to fix it:
    set container name \<name\> health-check retry \<retries\>
    

WARNING — mkdir shown as {opcmd} in the Adguard Home example (inline comment posted on lines 487–492)

  • {opcmd} is reserved for VyOS operational commands. mkdir is a Linux shell command and will fail at the VyOS $ prompt as written.

INFO — typo iselfitself (inline comment posted on line 208)

Needs Verification

  • Line 282–288 (new note on Global State Policies + container networks): the CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type arp is valid (confirmed in include/firewall/global-options.xml.i:47-96). However, in most Global-State-Policies setups the reader will also need set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled for the bridged-traffic block to apply at all. Worth confirming with a maintainer whether the note should mention that prerequisite, or whether ARP is exempted independently.
  • Lines 131–134 (port publishing note): the doc states port publishing "cannot be used with network". conf_mode/container.py does not raise a ConfigError for combining port with network — the restriction is a Podman-level limitation, not a CLI-level check. The wording is factually accurate but readers may be surprised that VyOS lets them commit an invalid combination.

False positives from Pass 1

All four HIGH-confidence Pass 1 findings were pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being treated as literal path components) and are not real issues:

  • container name … restart [no | on-failure | always] — matches XML <completionHelp><list>no on-failure always</list></completionHelp> at container.xml.in:399-422.
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in:557-580 (default journald, correctly re-annotated in this PR).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per include/firewall/global-options.xml.i:47-96.
  • container name … health-check retries — the path segment is valid; the real issue is that the leaf name is retry, not retries (see ERROR above).

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file(s)

  • Verify claims against vyos-1x source in rolling branch

  • Post inline comments for confirmed issues

  • Post summary comment
    · branch containerdocs

vyos-bot Bot added a commit to vyos/vyos-cla-signatures that referenced this pull request Aug 12, 2026
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: a0b29c11-79c5-4a0a-a7c9-085dd95ae0d3

📥 Commits

Reviewing files that changed from the base of the PR and between 8c38ad3 and 438abee.

📒 Files selected for processing (1)
  • docs/configuration/container/index.md
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • ansible/ansible (manual)
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/configuration/container/index.md
📜 Recent review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: validate
  • GitHub Check: Mergify Merge Protections
  • GitHub Check: Summary
🧰 Additional context used
🔍 Remote MCP vyos.dev

Relevant review context

  • Container namespace sharing is not an existing documented capability. T8224 (“support for container network namespace sharing (Podman pods / container:)”) is Open / Wishlist, while T9035 (“Allow launching a container with an existing netns”) is Open / Low. Examples should not imply either feature is supported.

  • Port mappings with VRFs have an open, normal-priority bug. T9110 reports successful TCP handshakes followed by missing application traffic when container port mappings are used with a VRF. The Zabbix destination-NAT example should include a VRF limitation/caveat if applicable.

  • Dual-stack container networks have an open, high-priority failure. T9189 reports that assigning IPv4 and IPv6 addresses on the same container network can make commit fail while restarting the container service. Any dual-stack example should be tested or explicitly caveated.

  • The documentation restructuring is tracked separately. T9120 (“Docs structural improvements (8 items, KB-independent)”) is Open / Normal and explicitly includes rebalancing the single-page configuration/container documentation.

  • AdGuard Home precedent exists. Resolved T3778 contains an AdGuard Home container using allow-host-networks and persistent storage mapped to /opt/adguardhome/conf, supporting the general configuration pattern in the new example.


📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Improved container configuration guidance for networking, ports, volumes, devices, registry mirrors, and logging.
    • Clarified container operation commands and registry credential configuration.
    • Updated Zabbix examples with static addresses and destination NAT.
    • Added ARP exception guidance for global firewall policies.
    • Added an AdGuard Home configuration example.
    • Improved formatting, organization, and overall clarity throughout the container documentation.

Walkthrough

The container documentation separates configuration commands, clarifies networking and storage, documents operation commands and ARP firewall handling, and adds static-address destination-NAT examples for Zabbix and AdGuard Home.

Changes

Container documentation

Layer / File(s) Summary
Configuration reference
docs/configuration/container/index.md
The reference documents container settings, user-defined networks, DNS, ports, volumes, devices, health checks, registry credentials, registry mirrors, and journald logging.
Operations and firewall guidance
docs/configuration/container/index.md
The page documents container operation commands and adds ARP guidance for bridge interfaces under global firewall policies.
Networked service examples
docs/configuration/container/index.md
The Zabbix example uses static container addresses and destination NAT. The AdGuard Home example includes networking, persistent volumes, and TCP/UDP forwarding.

Possibly related PRs

  • vyos/vyos-documentation#2196: Both PRs update the same container documentation sections, including networking guidance, Zabbix NAT, and AdGuard Home configuration.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the documentation cleanup as the main change.
Description check ✅ Passed The description directly summarizes the documentation updates, including networking guidance and new configuration examples.
✨ Finishing Touches
✨ Simplify code
  • Create PR with simplified code

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md Outdated

@coderabbitai coderabbitai 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.

Actionable comments posted: 7

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/configuration/container/index.md`:
- Around line 478-481: Update NAT destination rule 101’s translation address to
172.20.0.13 so HTTP traffic targets the zabbix-web-nginx-mysql container, while
preserving its existing port, protocol, and translation-port settings.
- Around line 448-449: Update the mysql-server environment variable examples for
MYSQL_PASSWORD and MYSQL_ROOT_PASSWORD to use clearly marked placeholder values,
and add a note instructing operators to replace them with unique secrets before
deployment.
- Around line 409-412: Update the description for the `show container network`
operation to read “Show a list of available container networks,” adding the
missing preposition while preserving the existing wording.
- Around line 436-437: Update the Zabbix and AdGuard Home prose links to
reference-style links, using the exact “AdGuard Home” capitalization. Keep
canonical documentation lines under 80 characters, and wrap only any overlong
reference definitions with paired “% stop_vyoslinter” and “% start_vyoslinter”
markers.
- Around line 496-499: Update the note text in the AdGuard Home configuration
example to use “built-in DNS forwarder” and replace the comma splice after the
container port explanation with two separate sentences.
- Line 208: Update the source description in the container configuration
documentation to correct the typo, changing “iself” to “itself” while leaving
the rest of the text unchanged.
- Around line 282-283: Wrap the firewall note in
docs/configuration/container/index.md so every source line is at most 80
characters, and remove trailing whitespace from the affected lines while
preserving the existing wording and formatting.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Pro Plus

Run ID: fa3d2867-60fa-44c1-bd4b-8e7178fea239

📥 Commits

Reviewing files that changed from the base of the PR and between 1942c7d and da7b85c.

📒 Files selected for processing (1)
  • docs/configuration/container/index.md
🔗 Linked repositories identified

CodeRabbit considers these linked repositories for cross-repo context during reviews:

  • ansible/ansible (manual)
📜 Review details
⏰ Context from checks skipped due to timeout. (3)
  • GitHub Check: validate
  • GitHub Check: Mergify Merge Protections
  • GitHub Check: Summary
🧰 Additional context used
📓 Path-based instructions (2)
docs/**/*.md

📄 CodeRabbit inference engine (AGENTS.md)

docs/**/*.md: Canonical docs pages must be written as MyST Markdown (.md); edit existing pages in .md only and never use the old md- prefix for new pages.
Use {cfgcmd}, {opcmd}, and {cmdincludemd} fenced directives in MyST pages for VyOS command coverage; do not replace them with plain text or bash fences.
Use MyST ATX headings (#, ##, ###, etc.) in canonical pages; the RST heading hierarchy does not apply to .md sources.
In MyST pages, prefer single backticks for inline code; double backticks are reserved for embedded RST contexts.
Use % stop_vyoslinter and % start_vyoslinter comment markers in top-level MyST content to suppress real IPs or other allowed long-line exceptions, and keep them paired.
In MyST pages, write TODO markers as {todo} fenced directives.

Files:

  • docs/configuration/container/index.md
docs/{_include/*.txt,**/*.md}

📄 CodeRabbit inference engine (AGENTS.md)

Keep documentation lines within 80 characters unless the content is inside a code block or fenced/preformatted block.

Files:

  • docs/configuration/container/index.md
🧠 Learnings (13)
📚 Learning: 2026-05-06T20:48:49.689Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:71-71
Timestamp: 2026-05-06T20:48:49.689Z
Learning: In vyos/vyos-documentation, the 80-character line-length rule documented under Source conventions / Formatting applies only to documentation source files located under docs/ (e.g., docs/**/*.rst and docs/**/*.md). The rule is enforced by the vyoslinter (doc-linter.py from vyos/.github) when reviewing changed files via lint-doc.yml, and only for files within docs/**. Do not suggest hard-wrapping CLAUDE.md (repo-root documentation) because GitHub renders and reflows content. For CLAUDE.md, reviews should not enforce the 80-char wrapping; apply the rule only to files matching **/docs/**/*.{rst,md}.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:48:57.970Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:91-93
Timestamp: 2026-05-06T20:48:57.970Z
Learning: The 80-character line limit applies only to documentation sources under docs/** (RST/MD). Do not enforce this limit on repo-root Markdown files like CLAUDE.md or README.md. The vyoslinter (doc-linter.py, run via lint-doc.yml from vyos/.github) lints only changed files within docs/**; root files are excluded. GitHub renders root Markdown with viewport-width reflow, so hard-wrapping these files reduces readability without tooling benefit.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:48:50.446Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:64-64
Timestamp: 2026-05-06T20:48:50.446Z
Learning: Enforce the 80-character line-length limit only for documentation source files under docs/ (docs/**/*.md and docs/**/*.rst rendered by Sphinx and linted by vyoslinter via lint-doc.yml). Do not flag line-length issues in repository-root Markdown files such as CLAUDE.md or README.md, which GitHub renders with viewport-width reflow. This applies to all files within docs/ that are part of the documentation source.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:48:54.578Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:80-84
Timestamp: 2026-05-06T20:48:54.578Z
Learning: Enforce the 80-character line-length limit only for documentation source files under docs/ (docs/**/*.rst and docs/**/*.md). Do not flag repo-root files like CLAUDE.md or README.md, since they are rendered by GitHub and not subject to this rule. The doc-linter (doc-linter.py via lint-doc.yml) only lints docs/**, so CI checks won't flag root files for line length.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:49:00.044Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:108-108
Timestamp: 2026-05-06T20:49:00.044Z
Learning: Limit the 80-character line length check and vyoslinter (doc-linter.py) enforcement to documentation source files under docs/**/*.{rst,md}. Do not apply or flag line-length issues in repo-root files like CLAUDE.md or README.md, which are rendered directly by GitHub and are not linted by lint-doc.yml. This pattern narrows checks to Sphinx source docs and prevents false positives in non-doc files.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:48:53.302Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:79-79
Timestamp: 2026-05-06T20:48:53.302Z
Learning: Limit line length to 80 characters only for documentation sources under the docs directory (docs/**/*.rst and docs/**/*.md). This is enforced by the vyoslinter doc-linter.py (from the vyos/.github repo) via lint-doc.yml on changed files under docs/**. Do not flag line-length violations in repository-root Markdown files like CLAUDE.md or README.md, as they are rendered by GitHub and reflow in the UI.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:49:10.359Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:142-142
Timestamp: 2026-05-06T20:49:10.359Z
Learning: In vyos/vyos-documentation, the 80-character line limit and vyoslinter enforcement apply only to documentation source files under docs/**/*.rst and docs/**/*.md that Sphinx renders. Repo-root files such as CLAUDE.md and README.md are outside the linter's scope (lint-doc.yml runs on docs/**) and are rendered by GitHub with automatic paragraph reflow — do not flag line-length violations in these files.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-06T20:49:15.361Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1902
File: CLAUDE.md:163-163
Timestamp: 2026-05-06T20:49:15.361Z
Learning: In vyos/vyos-documentation, enforce the 80-character line-length limit (Source conventions / Formatting) only for Sphinx documentation source files under docs/**/*.rst and docs/**/*.md. The lint-doc.yml workflow runs the doc-linter (doc-linter.py) and checks only docs/** changed files. Files in the repository root (e.g., CLAUDE.md, README.md) are rendered by GitHub and are not subject to this rule; do not flag line-length violations in those files.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-08T07:01:22.978Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1878
File: docs/troubleshooting/connectivity.rst:0-0
Timestamp: 2026-05-08T07:01:22.978Z
Learning: For the VyOS documentation (MyST-based docs), MyST directive opener lines must keep the entire directive arguments on a single line. This includes MyST fenced-directive openers like ```{opcmd} ... ``` and the RST-equivalent form .. opcmd:: ... when ported/used in MyST. Because the MyST parser does not support wrapped/continued directive arguments across multiple lines, do not raise/keep review warnings suggesting line wrapping for these directive opener lines due to line-length (even if they exceed 80 characters).

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-08T07:01:22.978Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 1878
File: docs/troubleshooting/connectivity.rst:0-0
Timestamp: 2026-05-08T07:01:22.978Z
Learning: In vyos/vyos-documentation, do not raise line-length (>80 chars) review findings for MyST directive opener lines (the directive “opener” that uses MyST directive syntax such as `{cfgcmd}` / `{opcmd}` fence/openers). CI does not enforce the 80-character limit for these specific opener lines, and existing documentation contains longer opener lines that pass lint.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-13T22:16:06.198Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 2021
File: docs/automation/terraform/terraformvyos.md:14-14
Timestamp: 2026-05-13T22:16:06.198Z
Learning: In the vyos/vyos-documentation repo, when a PR is a byte-for-byte documentation port of an existing file from the rolling branch to a release branch (e.g., circinus, sagitta), keep the port content identical to the production-tested rolling source. For these ports, do not raise new review findings for documentation issues that are already present in the rolling source (for example, markdownlint MD059 like non-descriptive link text such as `[link]`/`[install]`). Instead, defer those existing issues to a rolling-side cleanup PR (e.g., `#2024`) and then backport the cleanup via Mergify.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-05-13T22:43:41.056Z
Learnt from: andamasov
Repo: vyos/vyos-documentation PR: 2024
File: docs/automation/terraform/terraformvyos.md:0-0
Timestamp: 2026-05-13T22:43:41.056Z
Learning: In docs/**/*.md, for Markdown reference definition lines of the form `[label]: <URL>`, if the line cannot be shortened to <= 80 characters (because the URL itself is near/at the limit), suppress the vyoslinter warning by wrapping only that reference definition with a `% stop_vyoslinter` / `% start_vyoslinter` block. If the reference definition can fit within 80 characters, leave it outside any suppression block.

Applied to files:

  • docs/configuration/container/index.md
📚 Learning: 2026-06-05T19:21:44.474Z
Learnt from: LiudmylaNad
Repo: vyos/vyos-documentation PR: 2066
File: docs/configuration/protocols/traffic-engineering.md:0-0
Timestamp: 2026-06-05T19:21:44.474Z
Learning: In the vyos/vyos-documentation MyST documentation pages, when writing CLI example invocations directly under a `{cfgcmd}` directive, use `none` fenced code blocks for those examples. Do not change these example blocks to `{opcmd}` or `{cfgcmd}`—`{opcmd}` is reserved for operational-mode commands, and the surrounding `{cfgcmd}` directive already documents the target command. Plain `none` blocks for these CLI examples are intentional and correct.

Applied to files:

  • docs/configuration/container/index.md
🪛 LanguageTool
docs/configuration/container/index.md

[grammar] ~498-~498: Use a hyphen to join words.
Context: ...rt 53 if you don't want to use the built in dns forwarder ::: ```none set contain...

(QB_NEW_EN_HYPHEN)

🔍 Remote MCP Context7, vyos.dev

Relevant review context

  • VyOS documentation explicitly states that port publishing is incompatible with user-defined container networks; the supported workaround is static container addressing plus destination NAT. The first network IP is reserved by the engine.
  • T6793, “Firewall Blocking ARP from Podman Container to Gateway,” was resolved after confirming this command fixes container ARP:
    set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type arp.,
  • Related open reports document failures when combining custom container networks, port mappings, and VRFs:
    • T6296 reports commit failure when publishing a port bound to a VRF address.
    • T9110 reports port-mapped traffic establishing a handshake but then stalling when the network is VRF-bound.
  • T9142 remains open and reports that the current accept-invalid dhcp handling accepts DHCP replies but not requests; avoid implying that this exception universally resolves bridged DHCP.
  • T9120, “Docs structural improvements (8 items, KB-independent),” explicitly identifies the container documentation monolith for restructuring, aligning with this cleanup.

No T-number appears in the supplied PR context itself, so no task could be treated as the PR’s authoritative objective.

🔇 Additional comments (2)
docs/configuration/container/index.md (2)

73-73: LGTM!

Also applies to: 122-143


383-384: LGTM!

Also applies to: 393-408, 414-423, 464-469, 487-492, 500-524

Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md
Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md
Comment thread docs/configuration/container/index.md
Comment thread docs/configuration/container/index.md
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review in progress

  • Read pass1-findings.json and pre-fetched context
  • Read the changed MyST file(s)
  • Verify claims against vyos-1x source in rolling branch
  • Post inline comments for confirmed issues
  • Post summary comment

View job run · branch containerdocs

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review in progress

  • Read pass1-findings.json and pre-fetched context
  • Read the changed MyST file (post-updates)
  • Verify claims against vyos-1x source in rolling branch
  • Post inline comments for any newly confirmed issues
  • Post summary comment

View job run · branch containerdocs

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions

Copy link
Copy Markdown
Contributor

Claude Code is working…

I'll analyze this and get back to you.

View job run

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review in progress

  • Read pass1-findings.json and pre-fetched context
  • Read the changed MyST file (post-updates)
  • Verify claims against vyos-1x source in rolling branch
  • Post inline comments for any newly confirmed issues
  • Post summary comment

View job run · branch containerdocs

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Review in progress

  • Read pass1-findings.json and pre-fetched context
  • Read the changed MyST file (post-updates)
  • Verify claims against vyos-1x source in rolling branch
  • Post inline comments for any newly confirmed issues
  • Post summary comment

View job run · branch containerdocs

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 3m 37s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, include/firewall/global-options.xml.i, src/conf_mode/container.py).

Issues

ERROR — health-check retries CLI leaf is misnamed (pre-existing, cannot be inline-commented — the line is unchanged by this PR)

  • File: docs/configuration/container/index.md:274
  • Doc says: set container name <name> health-check retries <retries>
  • Source: container.xml.in:623 defines <leafNode name="retry"> (singular); container.py reads container_config['health_check']['retry']. The plural form will not commit.
  • Same finding as my previous review — while cleaning up this document it would still be a good time to fix it:
    set container name \<name\> health-check retry \<retries\>
    

WARNING — {opcmd} fence swallows the entire AdGuard example (inline comment on lines 492–501)

  • The {opcmd} opened at line 492 has no matching closer until line 526. The ```none at line 501 is not a valid closing fence (CommonMark closers cannot carry an info string), so the note block and the CLI code block render inside the opcmd directive body.
  • Close the opcmd immediately after the add container image ... line, then let the note and none block stand on their own.

INFO — Dangling promise: "create the necessary directories from a shell" (inline comment on line 491)

  • The intro sentence says the reader should add the image and create directories from a shell, but no shell command is shown. The volume source paths /config/adguardhome/conf and /config/adguardhome/work (lines 507, 509) will fail to mount if the directories don't exist. Either drop the clause or add the shell commands.

Needs Verification

  • Lines 282–288 (ARP exception note): the CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type arp is valid (confirmed at include/firewall/global-options.xml.i:47-96). However, in typical Global-State-Policies setups the reader will also need set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled for the bridged-traffic block to apply at all. Worth confirming with a maintainer whether the note should mention that prerequisite, or whether ARP is exempted independently.
  • Lines 449–452 and 462–464 (mysql passwords in Zabbix example): the values zabbix_pwd and root_pwd are literal weak credentials. Consider marking them as placeholders (e.g. <change-me>) with a note telling operators to substitute unique secrets before deployment. Not a functional bug but a copy-paste footgun.

False positives from Pass 1

All four HIGH-confidence Pass 1 findings were pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being parsed as literal path components):

  • container name … restart [no | on-failure | always] — matches container.xml.in:399-422.
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in:557 (default journald).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per include/firewall/global-options.xml.i:47-96.
  • container name … health-check retries — path segment is valid; the real issue is that the leaf name is retry, not retries (see ERROR above).

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file (post-updates)

  • Verify claims against vyos-1x source in rolling branch

  • Post inline comments for newly confirmed issues

  • Post summary comment
    · branch containerdocs

@Diekos Diekos changed the title Cleaned up container document docs: Cleaned up container document Aug 12, 2026
Comment thread docs/configuration/container/index.md
Comment thread docs/configuration/container/index.md Outdated
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 2m 43s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, include/firewall/global-options.xml.i).

Issues

RESOLVED since previous review

  • health-check retry — the retriesretry leaf-name fix landed in commit f6526c1 (line 274). Confirmed against container.xml.in:623 (<leafNode name="retry">). ✅

WARNING — {opcmd} fence still swallows the AdGuard example (unchanged since previous review)

  • File: docs/configuration/container/index.md:492-526
  • Previously flagged inline at line 501 in the prior review; the only commit since then (f6526c1) touched the health-check block only, so the AdGuard opcmd/note/CLI structure is unchanged.
  • The ```{opcmd} fence opened at line 492 is only closed by the bare ``` at line 526. The ```none at line 501 has an info string, which per CommonMark is not a valid closing fence, so the "Then you can configure..." prose, the :::{note} block, and the CLI block from lines 502–525 all render inside the opcmd directive body.
  • Fix: close the opcmd immediately after add container image ..., then let the note and none code block stand as siblings. See the prior inline comment on line 501 for a concrete suggestion block.

INFO — Dangling shell-command promise (unchanged since previous review)

  • File: docs/configuration/container/index.md:491
  • Line 491 reads: "First, add the container image, then create the necessary directories from a shell:" — but no shell command is shown in the example. The volume source paths /config/adguardhome/conf and /config/adguardhome/work (lines 507, 509) require the directories to exist before Podman will mount them.
  • Fix: either drop the "create the necessary directories from a shell" clause, or add a short shell/bash fenced block after the opcmd that creates the two directories (e.g. mkdir -p /config/adguardhome/{conf,work}). See the prior inline comment on line 491.

Needs Verification

  • Lines 282–288 (ARP exception note): the CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type arp is valid (confirmed at include/firewall/global-options.xml.i:47-96, arp is in <completionHelp><list> and the constraint regex). However, in typical Global-State-Policies setups the reader also needs set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled for the bridged-traffic block to apply at all — worth a maintainer confirming whether the note should mention that prerequisite, or whether ARP is exempted independently.
  • Lines 448–452 / 462–464 / 478–479 (mysql passwords in the Zabbix example): literal weak credentials (zabbix_pwd, root_pwd). Not a functional bug but a copy-paste footgun — consider marking them as placeholders (e.g. <change-me>) with a note telling operators to substitute unique secrets before deployment.

False positives from Pass 1

All three HIGH-confidence Pass 1 findings were pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being parsed as literal path components):

  • container name … restart [no | on-failure | always] — matches container.xml.in:399-422 (<completionHelp><list>no on-failure always</list>, default on-failure).
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in:557-580 (default journald).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per include/firewall/global-options.xml.i:47-96.

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Commit reviewed: f6526c1 (delta from previous review cde25eef6526c1 is the health-check retry leaf-name fix only).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file (post-updates)

  • Verify claims against vyos-1x source in rolling branch

  • Post inline comments for newly confirmed issues (no new issues since prior review — persisting issues referenced above)

  • Post summary comment
    · branch containerdocs

@sever-sever
sever-sever requested review from dmbaturin and a lite review from Copilot August 12, 2026 12:07
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 1m 40s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, interface-definitions/include/firewall/global-options.xml.i).

Issues

RESOLVED since previous review

  • {opcmd} fence for AdGuard example — commit 1664040 now closes the opcmd immediately after {opcmd} add container image adguard/adguardhome:latest at line 493, so the following note and CLI code block render as siblings, not directive body. ✅
  • Dangling "create the necessary directories from a shell" clause — the intro at line 491 is now just "First, add the container image:" and the shell-command promise has been replaced with a :::{note} at lines 497–500 telling the reader that "The directories used in the container volumes must exist before configuring the container." ✅
  • health-check retry leaf name — confirmed at container.xml.in:623 (<leafNode name="retry">), matches doc line 274. ✅

Needs Verification (unchanged since previous review — carrying forward)

  • Lines 282–289 (ARP exception note): the CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' is valid — confirmed at interface-definitions/include/firewall/global-options.xml.i:57-95 (arp is in <completionHelp><list> and the constraint regex (arp|dhcp|pppoe|pppoe-discovery|802.1q|802.1ad|wol)). However, in typical Global-State-Policies setups the reader also needs set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled for the bridged-traffic block to apply at all — worth a maintainer confirming whether the note should mention that prerequisite, or whether ARP is exempted independently of the IPv4/IPv6 toggles.
  • Lines 451–452 / 463–464 / 478–479 (mysql passwords in the Zabbix example): literal weak credentials (zabbix_pwd, root_pwd) shown as deployable values. Not a functional bug but a copy-paste footgun — consider marking them as placeholders (e.g. <change-me>) with a note telling operators to substitute unique secrets before deployment.

False positives from Pass 1

All three HIGH-confidence Pass 1 findings are pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being parsed as literal path components):

  • container name … restart [no | on-failure | always] — matches container.xml.in <completionHelp><list>no on-failure always</list> (default on-failure).
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in (default journald).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per interface-definitions/include/firewall/global-options.xml.i:57-95.

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Commit reviewed: 1664040 (delta from previous review f6526c1 → 1664040 is the AdGuard opcmd-fence fix and the reworded "directories must exist" note — both previously flagged issues are now resolved).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file (post-updates)

  • Verify claims against vyos-1x source in rolling branch

  • Post inline comments for newly confirmed issues (none — all prior confirmed issues are now resolved)

  • Post summary comment
    · branch containerdocs

Copilot AI 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.

Pull request overview

This PR refines the VyOS container documentation page by clarifying several container configuration options and expanding the examples section (notably around container networks and service exposure).

Changes:

  • Improves explanations for port publishing, volume mounts, device mappings, and logging defaults.
  • Adds a note about Global State Policies when using container networks and updates the Zabbix example to use DNAT instead of port publishing.
  • Adds an AdGuard Home example configuration.
Suppressed comments (5)

docs/configuration/container/index.md:204

  • The cfgcmd fence for the device source command is missing its closing ``` delimiter. As written, the destination command line is nested as literal text inside the `source` directive.
```{cfgcmd} set container name \<name\> device \<devicename\> source \<path\>

docs/configuration/container/index.md:138

  • The cfgcmd fence for the volume source command is missing its closing ``` delimiter, so the subsequent destination `cfgcmd` line is treated as literal text inside the first directive instead of a separate directive.
```{cfgcmd} set container name \<name\> volume \<volumename\> source \<path\>

docs/configuration/container/index.md:168

  • The cfgcmd fence for the uid command is missing its closing ``` delimiter, which causes the gid directive to be parsed as plain text inside the `uid` block.
```{cfgcmd} set container name \<name\> uid \<number\>

docs/configuration/container/index.md:338

  • The cfgcmd fence for authentication username is missing its closing ``` delimiter, which causes the authentication password directive to be treated as plain text inside the username block.
```{cfgcmd} set container registry \<name\> authentication username

docs/configuration/container/index.md:358

  • The cfgcmd fences for mirror address, mirror host-name, and mirror port are missing their closing ``` delimiters. This nests subsequent cfgcmd lines as literal text inside the first directive and can break how these commands are indexed/linked in the rendered docs.
```{cfgcmd} set container registry \<name\> mirror address \<address\>

```{cfgcmd} set container registry \<name\> mirror host-name \<host-name\>

```{cfgcmd} set container registry \<name\> mirror port \<port\>


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

```

```{cfgcmd} set container name \<name\> health-check retries \<retries\>
```{cfgcmd} set container name \<name\> health-check retry \<retries\>

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.

On my router running VyOS 2026.08.05-0033-rolling, it is "retry":

vyos@VYOS01# set container name dns health-check 
Possible completions:
   command              Health check command to run for the container
   interval             Overwrite related health check configuration from the image
   retry                The number of retries before container is consider unhealthy
   timeout              Timeout for the health check to complete

      
[edit]
vyos@VYOS01# set container name dns health-check 

Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md Outdated
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 2m 6s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, interface-definitions/include/firewall/global-options.xml.i).

Issues

ERROR — stray prompt/review text pasted into the container-registry description (new regression in commit 8c38ad3) (inline comment posted on line 342)

  • File: docs/configuration/container/index.md:342
  • Line reads: Some container registries require credentials to be used. Post inline comments for any newly confirmed issues
  • The trailing clause Post inline comments for any newly confirmed issues is leftover text from an editing/review workflow (matches the checklist wording used in prior automated review comments on this PR). It has no relationship to registry credentials and will render verbatim in the rendered docs. git log -S confirms it was introduced by 8c38ad3 (the "Fixed line exceeds 80 char at volume mount / Fixed fences" commit) — likely an accidental paste while editing.
  • Fix: delete the stray sentence so the paragraph reads:
    Some container registries require credentials to be used.
    
    Credentials can be defined here and will only be used when adding a
    container image to the system.
    

WARNING — Zabbix intro sentence is grammatically incomplete (pre-existing, but the PR reworded the tail) (inline comment posted on lines 438–439)

  • File: docs/configuration/container/index.md:438-439
  • Reads: "For the sake of demonstration, example #1 in the official documentation to the declarative VyOS CLI syntax for Zabbix." — there is no main verb between the link and to the declarative.
  • Suggested rewrite: "… is adapted to the declarative VyOS CLI syntax for Zabbix."

Resolved since previous review

  • {opcmd} fence for AdGuard example now closes at line 493 (commit 1664040). ✅
  • Dangling "create the necessary directories from a shell" clause replaced with a :::{note} at lines 497–500 telling the reader the directories must exist. ✅
  • health-check retry leaf name — confirmed at container.xml.in:623 (<leafNode name="retry">), matches doc line 275. ✅

Needs Verification (carrying forward from previous reviews)

  • Lines 282–290 (ARP exception note): the CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' is valid — confirmed at interface-definitions/include/firewall/global-options.xml.i:57-96 (arp is in the <completionHelp><list> and the constraint regex (arp|dhcp|pppoe|pppoe-discovery|802.1q|802.1ad|wol)). However, in typical Global-State-Policies setups the reader also needs set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled (see leafNodes at lines 99–110) for the bridged-traffic block to apply at all — worth a maintainer confirming whether the note should mention that prerequisite, or whether ARP is exempted independently of the IPv4/IPv6 toggles.
  • Lines 449–452 / 462–464 / 478–479 (mysql passwords in the Zabbix example): literal weak credentials (zabbix_pwd, root_pwd) shown as deployable values. Not a functional bug but a copy-paste footgun — consider marking them as placeholders (e.g. <change-me>) with a note telling operators to substitute unique secrets before deployment. (Also flagged by CodeRabbit.)

False positives from Pass 1

All three HIGH-confidence Pass 1 findings are pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being parsed as literal path components):

  • container name … restart [no | on-failure | always] — matches container.xml.in <completionHelp><list>no on-failure always</list> (default on-failure).
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in (default journald).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per interface-definitions/include/firewall/global-options.xml.i:57-96.

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Commit reviewed: 8c38ad3 (delta from previous review 1664040 → 8c38ad3 is the fence-close/wrap fix at the volume section — and, inadvertently, the stray prompt-text paste at line 342 flagged above).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file (post-updates)

  • Verify claims against vyos-1x source in rolling branch

  • Post inline comments for newly confirmed issues

  • Post summary comment
    · branch containerdocs

Comment thread docs/configuration/container/index.md Outdated
Comment thread docs/configuration/container/index.md Outdated
No idea how that ended up in the file.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 2m 9s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, interface-definitions/include/firewall/global-options.xml.i).

Resolved since previous review

  • Stray prompt text at line 342 — commit cde1073 removed the trailing Post inline comments for any newly confirmed issues clause. The registry paragraph now reads cleanly: Some container registries require credentials to be used.

Issues

WARNING — Zabbix intro sentence is still grammatically incomplete (carried over from previous review)

  • File: docs/configuration/container/index.md:438-439
  • Reads: "For the sake of demonstration, example #1 in the official documentation to the declarative VyOS CLI syntax for Zabbix." — no main verb between the link and to the declarative.
  • Already inline-commented on in the previous review (is adapted); no code change has landed since then. Not re-posted inline to avoid duplication.

Needs Verification (carrying forward from previous reviews)

  • Lines 282–290 (ARP exception note): CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' is valid — confirmed at interface-definitions/include/firewall/global-options.xml.i:57-96 (arp is in the <completionHelp><list> and the regex constraint (arp|dhcp|pppoe|802.1q|802.1ad|pppoe-discovery|wol)). However, in typical Global-State-Policies setups the reader also needs set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled for the bridged-traffic block to apply at all — worth a maintainer confirming whether the note should mention that prerequisite, or whether ARP is exempted independently of the IPv4/IPv6 toggles.
  • Lines 449–452 / 462–464 / 478–479 (mysql passwords in the Zabbix example): literal weak credentials (zabbix_pwd, root_pwd) shown as deployable values. Not a functional bug but a copy-paste footgun — consider marking them as placeholders (e.g. <change-me>) with a note telling operators to substitute unique secrets before deployment. (Also flagged by CodeRabbit.)

False positives from Pass 1

All three HIGH-confidence Pass 1 findings are pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being parsed as literal path components). Verified against source:

  • container name … restart [no | on-failure | always] — matches container.xml.in:399-422 (<completionHelp><list>no on-failure always</list>, default on-failure).
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in:557-580 (default journald).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per include/firewall/global-options.xml.i:57-62.

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Commit reviewed: cde1073 (delta from previous review 8c38ad3 → cde1073 is the removal of the stray prompt text at line 342 — that issue is now resolved).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file (post-updates)

  • Verify claims against vyos-1x source in rolling branch

  • Post inline comments for newly confirmed issues (none new since prior review — carrying forward issues referenced above)

  • Post summary comment
    · branch containerdocs

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Claude finished @Diekos's task in 1m 42s —— View job


Review complete

Reviewed against vyos-1x@rolling (interface-definitions/container.xml.in, interface-definitions/include/firewall/global-options.xml.i).

Resolved since previous review

  • Zabbix intro sentence grammar — commit 438abee inserted is adapted between the link and to the declarative VyOS CLI syntax. Line 438–439 now reads as a complete sentence. ✅

No new commits touched other files. All remaining items below are carried over from prior reviews.

Issues

No confirmed new issues in commit 438abee.

Needs Verification (carrying forward from previous reviews)

  • Lines 282–290 (ARP exception note): CLI path set firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' is valid — confirmed at interface-definitions/include/firewall/global-options.xml.i:57-96 (arp is in <completionHelp><list> and the constraint regex (arp|dhcp|pppoe|pppoe-discovery|802.1q|802.1ad|wol)). However, in typical Global-State-Policies setups the reader also needs set firewall global-options apply-to-bridged-traffic ipv4 (or ipv6) enabled (leafNodes at global-options.xml.i:99-110) for the bridged-traffic block to apply at all — worth a maintainer confirming whether the note should mention that prerequisite, or whether ARP is exempted independently of the IPv4/IPv6 toggles.
  • Lines 449–452 / 462–464 / 478–479 (mysql passwords in the Zabbix example): literal weak credentials (zabbix_pwd, root_pwd) shown as deployable values. Not a functional bug but a copy-paste footgun — consider marking them as placeholders (e.g. <change-me>) with a note telling operators to substitute unique secrets before deployment. (Also flagged by CodeRabbit.)

False positives from Pass 1

All three HIGH-confidence Pass 1 findings are pattern-parser artifacts (bracketed value-lists like [no | on-failure | always] and quoted values like 'arp' being parsed as literal path components). Verified against source:

  • container name … restart [no | on-failure | always] — matches container.xml.in:399-422 (<completionHelp><list>no on-failure always</list>, default on-failure).
  • container name … log-driver [k8s-file | journald | none] — matches container.xml.in:557-580 (default journald).
  • firewall global-options apply-to-bridged-traffic accept-invalid ethernet-type 'arp' — valid per interface-definitions/include/firewall/global-options.xml.i:57-96.

Stats

  • Validated 1 MyST file (docs/configuration/container/index.md).

  • Skipped 0 RST files awaiting MyST migration.

  • Files reviewed: 1. Commands checked: ~30 CLI paths (container, container network, container registry, firewall global-options).

  • Branch reviewed: rolling (vyos-1x: rolling).

  • Commit reviewed: 438abee (delta from previous review cde1073 → 438abee is the Zabbix is adapted grammar fix — the previously flagged sentence-fragment issue is now resolved).

  • Read pass1-findings.json and pre-fetched context

  • Read the changed MyST file (post-updates)

  • Verify claims against vyos-1x source in rolling branch

  • Post summary comment (no new confirmed issues — carrying forward the two "Needs Verification" items above)
    · branch containerdocs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Development

Successfully merging this pull request may close these issues.

2 participants