<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/op_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 #5365 from l0crian1/last-used</title>
<updated>2026-08-11T15:53:51+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2026-08-11T15:53:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=7767004a4d2368dd7f9c6b3876f312944a4ce862'/>
<id>urn:sha1:7767004a4d2368dd7f9c6b3876f312944a4ce862</id>
<content type='text'>
firewall: T8221: Add last-used option to firewall rules</content>
</entry>
<entry>
<title>pki: T9135: add "show pki ca/certificate &lt;name&gt; text" command</title>
<updated>2026-08-10T19:34:19+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T19:34:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=83b5f2f73ce379f4cffcf5796c43ecf25cc2c3a3'/>
<id>urn:sha1:83b5f2f73ce379f4cffcf5796c43ecf25cc2c3a3</id>
<content type='text'>
"show pki ca/certificate &lt;name&gt;" only ever offered PEM output, which isn't
practical for a human to actually read. Add a "text" form that runs the
certificate through OpenSSL's own "-text" formatter, the same human-readable
breakdown "openssl x509 -text" produces.
</content>
</entry>
<entry>
<title>pki: T9135: correctly resolve a file:// URL when importing a CA certificate</title>
<updated>2026-08-10T19:06:48+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T19:06:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=7fdc8ce619bcf02dc07a90bca37cc47882f89606'/>
<id>urn:sha1:7fdc8ce619bcf02dc07a90bca37cc47882f89606</id>
<content type='text'>
The local-file branch of CA certificate import recognized a file:// URL
by scheme but never actually decoded it - os.path.exists()/open() still
received the full "file://..." string rather than the path component, so
an explicit file:// URL always failed with "File not found" even when it
pointed at a real, readable file.
</content>
</entry>
<entry>
<title>pki: T9135: preserve every certificate in an ACME chain, not just the first</title>
<updated>2026-08-10T19:05:13+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T18:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=5faebdb613ae83947f0428951f6e68d6b66da7db'/>
<id>urn:sha1:5faebdb613ae83947f0428951f6e68d6b66da7db</id>
<content type='text'>
certbot's chain.pem commonly holds more than one certificate - e.g. the
immediate intermediate plus its own issuing root - but the synthetic CA
entry built from it only ever kept the first, silently dropping the rest
before find_chain() ever saw them. This left a shorter chain than certbot
itself actually has, e.g. requiring a root to also be configured manually
to reach the same result certbot's own data already provides.

Parse every certificate block in chain.pem and emit one synthetic entry
per certificate, numbering entries after the first so each is still its
own addressable, non-redundant, non-settable object exactly like before.
</content>
</entry>
<entry>
<title>pki: T9135: don't crash on an ACME certificate not yet issued</title>
<updated>2026-08-10T19:04:10+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-08-10T18:24:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=0cfdd6a869772defbd6ca7778273bdab4b85dfe7'/>
<id>urn:sha1:0cfdd6a869772defbd6ca7778273bdab4b85dfe7</id>
<content type='text'>
Both the with_pki=True chain injection and "show pki ca" unconditionally read
a certificate's own content to check whether an explicit CA already covers its
chain. For an ACME certificate with no cert.pem yet (pending its first issuance,
or after a failed request), that content is never populated and the lookup
raised KeyError - crashing every with_pki=True consumer and "show pki" alike.
</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>op-mode: T9135: allow importing a CA certificate from a remote URL</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:12:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=576382b1d56bd17551114245bffee4b7b83685b8'/>
<id>urn:sha1:576382b1d56bd17551114245bffee4b7b83685b8</id>
<content type='text'>
The path argument to the CA import command now also accepts a remote URL
(http, https, ftp, sftp, scp, tftp, ...), detected by scheme, in addition to
a local file path. Makes it convenient to pull a well-known public intermediate
directly by URL instead of downloading and pasting PEM content by hand.
</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>T8221: Add last-used option to firewall rules</title>
<updated>2026-08-01T16:08:15+00:00</updated>
<author>
<name>l0crian1</name>
<email>ryan.claridge13@gmail.com</email>
</author>
<published>2026-08-01T16:08:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=ad7e36be54c00ca1a7adc1b58d72e778931436e7'/>
<id>urn:sha1:ad7e36be54c00ca1a7adc1b58d72e778931436e7</id>
<content type='text'>
 - Add last-used option to firewall rules
 - Updated output of show firewall to include last-used
 - Added smoketest for last-used option
</content>
</entry>
</feed>
