| Age | Commit message (Collapse) | Author |
|
line: imagemagick, librsvg2-bin, poppler-utils)
π€ Generated by [robots](https://vyos.io)
|
|
+ ImageMagick/librsvg)
π€ Generated by [robots](https://vyos.io)
|
|
* docs(DMVPN): T4667: Add firewall rule to prevent unencrypted GRE leaks
In DMVPN the mGRE tunnel and the IPSec protecting it are handled
independently, so GRE can be forwarded while no IPSec SA is active for a
peer (e.g. while an SA is still being negotiated or after one expires),
allowing unencrypted GRE to leave the router. This is inherent to
combining GRE with IPSec and is common to DMVPN implementations in
general.
Add a "Protecting against unencrypted traffic leaks" section to the DMVPN
reference page explaining the behaviour and recommending an output filter
rule that drops GRE not matched by an outbound IPSec policy
(ipsec match-none-out). Note that this disables unencrypted GRE on the
node entirely, so coexisting plain GRE tunnels would stop working.
Apply the same rule in the Dual HUB Dual Cloud example on the VyOS nodes.
Co-authored-by: Daniil Baturin <daniil@baturin.org>
* docs(DMVPN): reflow DMVPN documentation for line length compliance
Reformat the DMVPN guide and dual-hub dual-cloud example to wrap
long lines and improve readability without changing the documented
behavior or configuration guidance.
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
previews) (#2140)
* docs-infra: scaffold Cloudflare workers workspace (versions.json v2, matrix, toolchain)
π€ Generated by [robots](https://vyos.io)
* docs-infra: record full Phase-0 plan decision in workers/PLAN.md
π€ Generated by [robots](https://vyos.io)
* docs-infra: shared content worker β asset serving, cache classes, X-Docs-Build, canary no-store
π€ Generated by [robots](https://vyos.io)
* docs-infra: run worker script before assets; test fetch entrypoint
π€ Generated by [robots](https://vyos.io)
* docs-infra: apex manifest loader + dispatch map + runtime binding guard (TDD)
π€ Generated by [robots](https://vyos.io)
* docs-infra: apex redirects (aliases, PDF, trailing-slash) + special paths (TDD)
π€ Generated by [robots](https://vyos.io)
* docs-infra: PDF redirect honors pdf:null and preserves query
π€ Generated by [robots](https://vyos.io)
* docs-infra: apex UA gate β allowlist-wins, log-only AI crawlers, empty block list at launch
π€ Generated by [robots](https://vyos.io)
* docs-infra: apex router (pipeline Β§3.2), themed 404/503, /kb seam, env configs + congruence test
π€ Generated by [robots](https://vyos.io)
* docs-infra: add missing-User-Agent regression test for apex UA gate
π€ Generated by [robots](https://vyos.io)
* docs-infra: R2-streaming preview worker β MIME map, noindex, no-store (TDD)
π€ Generated by [robots](https://vyos.io)
* docs-infra: preview 404 no-store + fetch handler tests
π€ Generated by [robots](https://vyos.io)
* docs-infra: bootstrap script β binding-target workers must exist before apex deploys
π€ Generated by [robots](https://vyos.io)
* docs-infra: apex run_worker_first, lockfile for npm ci, PDF Location from manifest
π€ Generated by [robots](https://vyos.io)
* docs-infra: derive html_baseurl from DOCS_VERSION_SLUG with RTD fallback (canonical gate prereq)
π€ Generated by [robots](https://vyos.io)
* docs-infra: version picker + status banner + language scaffold (vanilla JS, TDD pure core)
π€ Generated by [robots](https://vyos.io)
* docs-infra: picker preserves query+hash across switch; valid breadcrumb markup
π€ Generated by [robots](https://vyos.io)
* docs-infra: Pagefind search wrapper with runtime base-path + preview prefix handling (TDD)
π€ Generated by [robots](https://vyos.io)
* docs-infra: pagefind wrapper β asset-failure notice + UI stylesheet load
π€ Generated by [robots](https://vyos.io)
* docs-infra: gate Pagefind searchbox to CF builds (RTD keeps stock search until cutover)
π€ Generated by [robots](https://vyos.io)
* docs-infra: deploy sanity gates β limits, critical pages, count-delta, canonical (TDD)
π€ Generated by [robots](https://vyos.io)
* docs-infra: hermetic gate tests via fixture versions.json
π€ Generated by [robots](https://vyos.io)
* docs-infra: docs-build workflow β candidate/smoke/promote two-stage deploy + registry + rollback
Two-stage CF Workers pipeline: build in pinned container, assemble artifact,
sanity gates, deploy candidate, scoped pre-traffic smoke via canary apex,
promote (rollback-id capture, hostname purge, registry upload), post-promote
probe + auto-rollback. DOCS_CF_LIVE repo variable gates every docs.vyos.io
production interaction pre-cutover.
scripts/docs_gates/smoke.py adds one authorized check beyond the spec: the
version's index.html probe asserts the #vyos-search mount div is present in
the response body, guarding CI silently forgetting DOCS_VERSION_SLUG (which
would otherwise ship stock RTD search without the Pagefind gate noticing).
π€ Generated by [robots](https://vyos.io)
* docs-infra: build docs image in-workflow with buildx cache (v4.1 β digest pin dropped)
Plan v4.1 amendment: the ghcr.io digest-pinned image does not exist (workflow
would hard-fail at the first docker step on every push). Replace the BUILD_IMAGE
env placeholder with an in-workflow docker build from docker/Dockerfile via
docker/setup-buildx-action@v3 + docker/build-push-action@v6 (context: docker/,
load: true, tags: docs-build:local, GHA cache from/to). The checked-out commit
is the pin; buildx GHA cache keeps repeat builds cheap. Sphinx-build step swaps
to docs-build:local; inner script unchanged.
π€ Generated by [robots](https://vyos.io)
* docs-infra: apex/preview deploy workflow β canary auto, production behind environment approval
* docs-infra: apex-deploy concurrency guard (per-ref, cancel-in-progress)
π€ Generated by [robots](https://vyos.io)
* docs-infra: fork-safe PR preview pipeline β approval record, R2 prefixes, label consumption, cleanup
* docs-infra: nightly preview sweep β pipefail + per-prefix failure isolation
π€ Generated by [robots](https://vyos.io)
* docs-infra: nightly canary QA β per-entry sweep + URL-parity corpus vs RTD
π€ Generated by [robots](https://vyos.io)
* docs-infra: parity sweep scoped to CF-built versions; transport-error resilience
π€ Generated by [robots](https://vyos.io)
* docs-infra: one-off bootstrap workflow (binding targets β runs once on this push)
π€ Generated by [robots](https://vyos.io)
* docs-infra: remove one-off bootstrap workflow (bootstrap complete)
π€ Generated by [robots](https://vyos.io)
* docs-infra: one-off canary apex + preview deploy (route targets for Task 3.6 step 2c)
π€ Generated by [robots](https://vyos.io)
* docs-infra: remove one-off canary deploy workflow (targets live)
π€ Generated by [robots](https://vyos.io)
* docs-infra: address Phase-0 CodeRabbit findings (canonical gate, error caching, registry pointer, validation)
π€ Generated by [robots](https://vyos.io)
* docs-infra: strengthen manifest tests (full dispatch iteration, mutation-free validate)
π€ Generated by [robots](https://vyos.io)
* docs-infra: address GitHub CodeRabbit review (pointer-after-probe, fail-closed sweeps, block-precedence UA gate, preview hardening)
π€ Generated by [robots](https://vyos.io)
* docs-infra: adversarial review fixes β error no-store, probe retry, PR-list membership, preview dotted-segment
π€ Generated by [robots](https://vyos.io)
* docs-infra: serve oversized legacy PDF from R2 via apex (spec Β§5 fallback)
The 1.3 PDF (29.2 MiB) exceeds the 25 MiB static-asset cap and is absent
from the legacy content Worker's build, so /_/downloads/en/1.3/pdf/ (and
the picker's PDF link) 301'd into a dead-end 404 post-cutover. Add the R2
object fallback spec Β§5 already documented but never implemented: a
DOCS_PDFS R2 bucket binding on the apex Worker, a manifest pdf_r2_key
field (1.3 only), and a router step ahead of version dispatch that streams
the object with its own cache class (canary/error still force no-store).
π€ Generated by [robots](https://vyos.io)
* docs-infra: PDF R2 fallback honors Range + If-None-Match, preserves ETag
π€ Generated by [robots](https://vyos.io)
|
|
* docs: Update Suricata page to VyOS 1.5 standards
* Update suricata.md
* Update suricata.md
* Update suricata.md
|
|
docs(Traffic Engineering): Clarify OSPF advertisement is not yet supported
|
|
|
|
* docs: Add GeoIP ASN support (T5746)
* Small styling changes
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
* docs: Update UDP broadcast relay page to VyOS 1.5 standards
* Remove the implication that something other than IPv4 supports broadcast
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
|
|
* docs: Update TFTP server page to VyOS 1.5 standards
* Update tftp-server.md
|
|
* docs: Update Console server page to VyOS 1.5 standards
* Minor corrections
* Minor corrections
* Apply suggestions from code review
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update console-server.md
* Apply suggestions from code review
Co-authored-by: Daniil Baturin <daniil@baturin.org>
* Remove the mention of long-EOL'd VyOS 1.3
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
pseudo-ethernet: T8540: Add anycast-gateway support for EVPN
|
|
* docs: Update Config sync page to VyOS 1.5 standards
* Minor corrections
* Update config-sync.md
* Apply suggestion from @github-actions[bot]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Apply suggestion from @github-actions[bot]
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
|
On a fresh (no-consent) load the consent banner could render completely
unstyled and expand to full page height. Cookiebot delivers its dialog CSS as
a constructed stylesheet on document.adoptedStyleSheets; ReadTheDocs'
readthedocs-addons.js reassigns that whole-array property with a destructive
replace, and when that lands after Cookiebot's network-gated adoption it drops
Cookiebot's sheet, leaving #CybotCookiebotDialog at position:static expanded to
~6700px. It is a race, so it is intermittent and clears once consent is given
(the dialog then never renders).
- layout.html: a small adoptedStyleSheets shim, installed before any page
script, that preserves Cookiebot's sheet so another library cannot drop it.
- custom.css: a leak-safe safety net that keeps the dialog contained even if
its adopted sheet is ever absent. It uses only properties Cookiebot itself
sets, so it has verifiably no effect on the normal, styled banner.
π€ Generated by [robots](https://vyos.io)
|
|
* dhcp: Update documentation to sync with DHCPv4/v6 options
Sync up with Kea DHCPv4 and DHCPv6 options documentation,
and clarify some of the options.
* Remove mentions of specific DHCP server implementations
Co-authored-by: Daniil Baturin <daniil@baturin.org>
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
* docs: Update IS-IS page to VyOS 1.5 standards
* Apply suggestions from code review
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Update isis.md
* Update isis.md
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
|
|
|
Replace mentions of the 'current' Git branch with 'rolling'
|
|
|
|
Update the default Git branch in build-vyos.md from 'current' to 'rolling'
|
|
* docs: Update OpenFabric page to VyOS 1.5 standards
* Update openfabric.md
* Update openfabric.md
* Update openfabric.md
|
|
* docs: Update RPKI page to VyOS 1.5 standards
* Update rpki.md
* Update rpki.md
|
|
* docs: Update Traffic Engineering page to VyOS 1.5 standards
* Update traffic-engineering.md
* Update traffic-engineering.md
|
|
* docs: Update Segment Routing page to VyOS 1.5 standards
* docs: Minor corrections
* docs: Minor formatting corrections
* Update segment-routing.md
|
|
* docs: Update RIP page to VyOS 1.5 standards
* Update rip.md
|
|
* docs: Update PIM page to VyOS 1.5 standards
* Update pim.md
|
|
* docs: Update MPLS page to VyOS 1.5 standards
* Update mpls.md
|
|
T8967: Fix update-check URL for rolling
|
|
|
|
conntrack: T8308: Enhancements to the `show conntrack table` op-mode command
|
|
* docs: Update Static page to VyOS 1.5 standards
* Update static.md
* Remove needless words
* Fix an incorrect fact about RIB not preserving routes after interface state changes
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
(#2047)
|
|
* docs: Update BFD page to VyOS 1.5 standards
* Update bfd.md
* Remove mentions of security from the minimum-ttl section
---------
Co-authored-by: Daniil Baturin <daniil@baturin.org>
|
|
* docs: Update IGMP Proxy page to VyOS 1.5 standards
* Minor formatting corrections
* docs: use RFC 5737 IP range
* Apply suggestions from code review
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
* Update igmp-proxy.md
---------
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
|
|
|
|
|
- Display per-flow packet and byte counters (original and reply
direction).
- Add VRF filter option `show conntrack table <ipv4|ipv6> vrf <vrf-name>`.
|
|
high-availability: T7059: Add persistence-timeout option in virtual-server
|
|
|
|
Update the upstream Git branch from 'current' to 'rolling in the
'Write Documentation' instructions.
|
|
* bgp: T8607: Add CLI support for BGP update-delay and establish-wait
* Potential fix for pull request finding
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* T8607: Apply Copilot's suggestions
---------
Co-authored-by: Christian Breunig <christian@breunig.cc>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
|
docs: fix CLI typo, orphan fences, CloudWatch case, terraformvyos link labels
|
|
doc-lint regression on [vyos-documentation#2024](https://github.com/vyos/vyos-documentation/pull/2024): the CI workflow's
`scripts/doc-linter.py` scans every line of every changed file
(not just changed lines), so the typo fix on `cli.md:464` and the
capitalization fix on `aws.md:118` surfaced 57 pre-existing >80-char
violations that have lived on rolling since the MyST migration.
`cli.md` β 53 prose paragraphs hard-wrapped at word boundaries to
80 chars, preserving content fidelity. List items use hanging-indent
continuations under their `- ` marker. No content reworded; only
soft-wrap β hard-wrap.
`aws.md` β wrapped the inline AWS GWLB blog link (L164) and the
References section (L185-187) with `% stop_vyoslinter` /
`% start_vyoslinter` markers. These are URL-bearing lines that
cannot be shortened (URL itself >80 chars).
Verified locally:
`python3 scripts/doc-linter.py "['docs/cli.md','docs/installation/cloud/aws.md','docs/automation/terraform/terraformvyos.md']"`
β exit 0, no violations.
π€ Generated by [robots](https://vyos.io)
|
|
The full HashiCorp install-CLI URL is 79 chars, so any reference
definition `[X]: <URL>` form exceeds the 80-char docs-lint limit
regardless of label length. Existing `% stop_vyoslinter` /
`% start_vyoslinter` markers in this file were back-to-back with
no content between them (flagged by Copilot on
[vyos-documentation#2021](https://github.com/vyos/vyos-documentation/pull/2021)) β put them to work by wrapping the long
`[install Terraform]:` reference. The shorter
`[Terraform introduction]:` reference (73 chars) sits outside the
suppression range.
Both Copilot and CodeRabbit flagged the docs-lint regression on
[vyos-documentation#2024](https://github.com/vyos/vyos-documentation/pull/2024) β verified locally with
`python3 scripts/doc-linter.py docs/automation/terraform/terraformvyos.md`:
no warnings.
π€ Generated by [robots](https://vyos.io)
|
|
Surfaced by CodeRabbit on the circinus RSTβMD conversion PR
[vyos-documentation#2021](https://github.com/vyos/vyos-documentation/pull/2021) (`terraformvyos.md:14`). Both labels violate MD059
(descriptive link text) β generic words like "link" don't convey
the destination to screen-reader users or search indexers.
Pre-existing on rolling; out of scope for the conversion port,
fixed here at the source. Mergify will backport to circinus and
sagitta. Sibling `automation/terraform/index.md` already uses the
descriptive form ([Terraform], [Ansible]).
π€ Generated by [robots](https://vyos.io)
|
|
The original RST `_include/need_improvement.txt` wrapped the admonition
in `.. raw:: latex \iffalse / \fi`, intentionally hiding the
"Call for Contributions" notice from the LaTeX/PDF builder (see
b222a313, 2020). `.readthedocs.yml` enables `formats: - pdf` and
`conf.py` configures `latex_elements`/`latex_documents`, so PDF output
is a real downstream artifact.
The previous commit (82a06e1d) dropped that suppression. Restore it
using Sphinx's `only` directive with `not latex`, which is the MyST
equivalent of the original RST builder-conditional pattern.
Spotted by Copilot inline review on #2016.
π€ Generated by [robots](https://vyos.io)
|
|
Three pre-existing rolling docs bugs, surfaced by Copilot review on
the sagitta RSTβMD conversion PR #2022 against the byte-for-byte
ports of `cli.md` and `aws.md`:
- `cli.md` line 464: `set interface ethernet β¦` is wrong; the CLI
command is `set interfaces ethernet β¦` (plural). Users copying the
example verbatim would hit "Configuration path is not valid".
- `cli.md` lines 527-528: orphan `:::` / `::::` fence closers after
the `{cfgcmd} save` block. The `(save)=` directive opens at line
503 and closes at line 506; the two `` ``` none `` blocks at
508-526 are self-contained; nothing opens these colon fences.
MyST/Sphinx tolerates them silently today but they're literal
noise. Drop both.
- `aws.md` line 118: "Cloudwatch" β "CloudWatch", matching the
surrounding correctly-cased uses on lines 115/121/122 and AWS's
product naming.
Mergify will backport to circinus and sagitta via the standard
`@Mergifyio backport circinus sagitta` post-merge.
π€ Generated by [robots](https://vyos.io)
|
|
renders correctly
After the RSTβMyST migration, ~45 MD pages use the plain `{include}` MyST
directive to pull in `_include/need_improvement.txt`. The included file
still contained RST (`.. raw:: html`, `.. raw:: latex`, `:ref:`), and
MyST's built-in `{include}` parses the content with the *outer* file's
parser β i.e. as MyST. RST directives then render as literal paragraphs.
Visible symptom on docs.vyos.io/en/rolling (and across 1.5/1.4):
the VPP index, VPP subpages, haproxy, isis, bfd, policy, pki, salt,
flowtables, webproxy, and others all show:
.. raw:: latex
\iffalse
.. raw:: html
Call for Contributions
Help improve this section ...
For contribution guidelines, see :ref: documentation .
Fix: rewrite `_include/need_improvement.txt` as a native MyST admonition
(`:::{admonition} Call for Contributions / :class: error / ... / :::`)
and drop the now-unnecessary `{eval-rst}` wrapper at the single callsite
(`configuration/highavailability/index.md`) that wrapped the include for
RST processing.
The fix is companion to 9c815d68 (cmdincludemd RST plumbing) but targets
the plain-`{include}` path which doesn't route through our custom
extension.
π€ Generated by [robots](https://vyos.io)
|
|
Introduce 'anycast-gateway' option for pseudo-ethernet interfaces.
When set, a local FDB entry is installed on the parent bridge to
prevent the shared anycast MAC from leaking over the VXLAN overlay.
|