This PR updates the dependencies:
o since toml has changed too much, switches to toml_edit,
o with scoped threads and once writable cells now available in std, it
also drops the crossbeam-utils and once_cell crates.
The PR also increases the minimum supported Rust version to 1.70. This makes
it a breaking change.
This PR moves the config and command line options to enable ASPA behind a
feature flag aspa which is not part of the default features. All the actual
ASPA code is still there, it is just now impossible to enable ASPA without
the flag.
This change is necessary because the ASPA object format and RTR PDUs are
currently changing and we want to avoid people accidentally using a draft
version that is incompatible with the final standard. The feature will be
removed as soon as the standardization process has advanced sufficiently to
avoid this risk.
The PR removes the enable-aspa config and command line options from the
manual page.
---------
Co-authored-by: Alex Band <alex@nlnetlabs.nl>
The PR adds a new endpoint /json-delta/notify that waits with responding
until new data is available and then returns a JSON object with the session
ID and serial number.
---------
Co-authored-by: Alex Band <alex@nlnetlabs.nl>
This PR implements all log handling with the exception of actual syslog in
Routinator itself. It also implements support for log rotation when logging
into files by re-opening the log file when receiving SIGUSR2.
Error handling for logging is now such that if trying to log to file or
syslog fails, Routinator will exit. It will also exit if it receives SIGUSR2
and can’t open the log file.
The motivation for this is that the log is used by many people to determine
issues with the RPKI repositories, so silently not having logs seems bad.
Also, not being able to log is a good indication for bigger problems to
come.
---------
Co-authored-by: Luuk Hendriks <mail@luukhendriks.eu>
This PR switches the dependencies on rpki-rs to the released 0.16.1 and on
routecore to 0.3.1. As a consequence, the minimum required Rust version can
be lowered to 1.63.
This PR adds support for ASPA to Routinator.
The PR adds a new config option ‘enable_aspa’ that is false by default. Only
if it is set to true will ASPAs be added to the payload set.
It adds support for processing ASPA objects to the engine, adds ASPA related
metrics, and completely refactors the payload storage to be able to deal
with the differing semantics of ASPA payload.
The PR adds a new "aspa" member to the jsonext format and the HTTP delta endpoint. It adds new members to the API status and adds new Prometheus
metrics.
It increases the minimum required Rust version to 0.65.
---------
Co-authored-by: Alex Band <alex@nlnetlabs.nl>
Co-authored-by: Luuk Hendriks <mail@luukhendriks.eu>
Bug Fixes
* Allow private keys prefixed both with `BEGIN PRIVATE KEY` and
`BEGIN RSA PRIVATE KEY` in the files referred to by `http-tls-key` and
`rtr-tls-key` configuration options. ([#831], [#832])
This commit restructures the TAL configuration in response to the dropped
requirement to opt into the ARIN TAL.
Routinator will now use the bundled RIR TALs directly unless told otherwise
by the new --no-rir-tals command line and config option. The additional
bundled TALs can be added via the new --tal command line and config option.
Additionally, the TAL directory can still be used via the --extra-tals-dir
option. The tal-dir option has been removed but will still be accepted – and
ignored – in the config file only.
The init command has been removed.
Co-authored-by: Alex Band <alex@nlnetlabs.nl>
Co-authored-by: ximon18 <3304436+ximon18@users.noreply.github.com>
Co-authored-by: Luuk Hendriks <mail@luukhendriks.eu>
This commit replaces the current Packaging pkg.yml and Packaging Docker pkg-docker.yml workflows with a much simpler Packaging pkg.yml workflow that outsources the behaviour to a new equivalent reusable workflow defined in the NLnet Labs organisation wide https://github.com/NLnetLabs/.github repository.
This commit also adds Docker ARMv6, ARMv7 and ARM64 multi-arch support, ARMv6 DEB support, fixes a couple of RPM issues (postuninst script fails to run, user already exists on re-install), and resolves an unattended-upgrade TAR error.
Resolves #763, #773, #774, and #783.
* Fix the logic for ensuring that RPMs built for release candidates have a tilda (~) in the package version so that (a) they are considered older than the final non-release candidate version when it is published and (b) the packaging process publishes them in the -proposed repo and not the production repo. This also fixes the wrong version number (with tilda instead of dash) being used in therelease tag URL included in DEB debian/changelog file.
* Don't cache the target directory as subsequent builds can end up with both new and old content in the dir such as an old RPM plus the new one!