<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/conf_mode, branch rolling</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-08-11T18:02:14+00:00</updated>
<entry>
<title>Merge pull request #5388 from c-po/remove-acme-autocert</title>
<updated>2026-08-11T18:02:14+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-11T18:02:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=625d03bfcb12f4b2971590f6b0266c6c37d2f12b'/>
<id>urn:sha1:625d03bfcb12f4b2971590f6b0266c6c37d2f12b</id>
<content type='text'>
pki: T9135: derive ACME certificate chains from disk</content>
</entry>
<entry>
<title>Merge pull request #5377 from l0crian1/better-fw-error-output</title>
<updated>2026-08-10T20:13:11+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T20:13:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9502cdffa1c016f35c957a5d61f67b9bbd856cbe'/>
<id>urn:sha1:9502cdffa1c016f35c957a5d61f67b9bbd856cbe</id>
<content type='text'>
firewall: T7552: Output rule in verify_rule() ConfigError messages</content>
</entry>
<entry>
<title>pki: T9135: restore an ACME certificate backup on any request failure</title>
<updated>2026-08-10T19:06:00+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T18:45:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=ae05ffb8bfae759dee1c891d8fef2094be1d6132'/>
<id>urn:sha1:ae05ffb8bfae759dee1c891d8fef2094be1d6132</id>
<content type='text'>
certbot_request() ultimately shells out via cmdl(), which can fail with
something other than ConfigError - e.g. FileNotFoundError if the certbot
binary itself is missing, or another OSError from the underlying process
call. The backup/restore wrapper around a certificate replacement only
caught ConfigError, so any other failure skipped restoration entirely and
left the certificate deleted with no way back, defeating the point of taking
a backup before requesting a replacement in the first place.
</content>
</entry>
<entry>
<title>pki: T9135: surface the real ACME error reason on certbot failure</title>
<updated>2026-08-10T19:04:07+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T18:15:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9f34c853adcc94cb8c03e25457f739096c175276'/>
<id>urn:sha1:9f34c853adcc94cb8c03e25457f739096c175276</id>
<content type='text'>
A failed certbot request or renewal only showed the CLI a raw dump of the
invoked command line and its exit code - not the actual reason (e.g. rate
limiting, failed domain validation), because certbot's own non-interactive
error reporting can itself crash on an unrelated internal bug while trying
to display the failure, masking it entirely from the captured output.

Read the real reason directly out of certbot's own debug log instead, scoped
to what the current invocation appended, and use it as the error message
shown to the user. Falls back to the previous generic message when no such
line is found.
</content>
</entry>
<entry>
<title>pki: T9135: derive ACME certificate chains from disk</title>
<updated>2026-08-10T19:04:07+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-09T18:13:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=096665fcc20a2a4952846f3514ae54fc101218ed'/>
<id>urn:sha1:096665fcc20a2a4952846f3514ae54fc101218ed</id>
<content type='text'>
An ACME-issued certificate's intermediate CA was previously imported into the
running configuration as a synthetic object, purely so consumers building a
full certificate chain (HAProxy, HTTPS, IPsec, stunnel, EAPOL, ...) could
find it. This leaked certbot's internal state into the CLI as a real, deletable
object that never needed to exist there: the intermediate is available on disk
the moment the certificate is issued, same as the leaf certificate and its key.

Read it live from disk instead, purely in memory, wherever a full chain is
resolved or displayed - never as a settable or deletable configuration object.
An already-configured CA that completes the chain on its own takes precedence
and nothing synthetic is added.

Adding, changing, or removing a CA now reloads only the services whose resolved
chain is actually affected, with no side effect on certificates whose own
content did not change.
</content>
</entry>
<entry>
<title>Merge pull request #5384 from c-po/container-fix</title>
<updated>2026-08-10T13:43:08+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2026-08-10T13:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b361f499edbca79703157b943201547b52f0e453'/>
<id>urn:sha1:b361f499edbca79703157b943201547b52f0e453</id>
<content type='text'>
container: T7736: fix smoketest failures caused by netavark/aardvark-dns IPv6 DAD race</content>
</entry>
<entry>
<title>Merge pull request #5347 from statio/T9122-flow-accounting-netflow-vrf</title>
<updated>2026-08-08T16:46:36+00:00</updated>
<author>
<name>Kyrylo Yatsenko</name>
<email>hedrok@gmail.com</email>
</author>
<published>2026-08-08T16:46:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=f6a1ff94f02282bd018b9b49ae1a9812619ec7ba'/>
<id>urn:sha1:f6a1ff94f02282bd018b9b49ae1a9812619ec7ba</id>
<content type='text'>
flow-accounting: T9122: bind NetFlow export to the configured VRF</content>
</entry>
<entry>
<title>container: T7736: disable IPv6 DAD for netavark bridges to fix aardvark-dns race</title>
<updated>2026-08-07T21:17:28+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-07T20:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=dabeff277774190d047155be6566da184b2b3e8f'/>
<id>urn:sha1:dabeff277774190d047155be6566da184b2b3e8f</id>
<content type='text'>
netavark assigns the IPv6 gateway address to a container "pod-*" bridge
and immediately invokes aardvark-dns to bind its DNS listener to it. While
the address is "tentative" during Duplicate Address Detection, that bind()
fails with EADDRNOTAVAIL and container startup fails for any IPv6-enabled
network.

The kernel only skips DAD for an address if both "all" and the specific
interface's own accept_dad are disabled at the moment the interface is
created. A per-interface override is always either too late for a network's
first-ever container - as the network can only be created in-time and not
explicitly before starting the first container.
</content>
</entry>
<entry>
<title>container: T7736: give container veths a deterministic host_interface_name</title>
<updated>2026-08-04T18:36:28+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-07-25T10:47:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=6d35f067d6da0a0ce270b9eb883469e0559c7c0e'/>
<id>urn:sha1:6d35f067d6da0a0ce270b9eb883469e0559c7c0e</id>
<content type='text'>
Podman's default "vethN" auto-naming for a container's host-side veth can
collide with VyOS's own "virtual-ethernet vethN" interfaces.

Bump the minimum Podman dependency to 5.8 (which supports "host_interface_name"
network connect option) and use it to name every non-macvlan container network
attachment "veth-&lt;container name&gt;" instead, eliminating the collision by
construction. Container names too long to fit are shortened to a recognizable
prefix plus a short hash of the full name; verify() rejects the rare case
where two containers still generate the same interface name.

Add "show container interface" to display the resulting name-to-container
mapping.
</content>
</entry>
<entry>
<title>T7552: Added more detail to error messages</title>
<updated>2026-08-04T17:17:54+00:00</updated>
<author>
<name>l0crian1</name>
<email>ryan.claridge13@gmail.com</email>
</author>
<published>2026-08-04T17:17:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=d28ce4499067b103565e0873e4677fd771962512'/>
<id>urn:sha1:d28ce4499067b103565e0873e4677fd771962512</id>
<content type='text'>
</content>
</entry>
</feed>
