Repository navigation
First release since 1.0.0-rc1. Closes #29, #30, #31, #32, #33 and #34 (and takes over the idea of the pull request #24).
Supported: Puppet >= 4.9.2 < 9.0.0 and OpenVox 7 and 8, puppetlabs/stdlib >= 5.2.0 < 11.0.0.
The full history is in the CHANGELOG.
Behaviour changes to check when upgrading
- the values are validated more strictly: the
Networkmanager::DNS_IPV4,DNS_IPV6andIPV4_CIDRtypes used unanchored patterns and accepted almost any string, they now validate the whole value;$ipv6_dhcp_duidofconnection(any string before) is validated by the newNetworkmanager::DHCP_DUIDtype as it is inbondandbridge; a malformed value which used to slip through now fails to compile - the values of the keyfiles are formatted by
networkmanager::ini_valueaccording to the GLib key file rules: arrays are written asa;b;(they were rendered as[a, b]), the backslash, new line, tab, carriage return and edge spaces are escaped so that a value can not break the file - only the
methodis written to theipv4section when it isdisabledand to theipv6section when it isignoreordisabled, the other settings have no effect there (the idea of the pull request #24 by kbucheli), the sections are prepared bynetworkmanager::prepare_ipv4_configandnetworkmanager::prepare_ipv6_config networkmanager::ifc::bridgeignored$ipv4_dns, it is written now- the
hash2stuffdependency was removed (#30), the keyfiles andNetworkManager.confare rendered by the bundledtemplates/ini.epp - the unused
NMMod::*types and the unusednetworkmanager::get_ipv6_duidfunction were removed
New features
$networkmanager::ipv6_dhcp_duid_default('auto'by default) is used for the connections that do not set their own$ipv6_dhcp_duid, so a connection with the$mac_addressdoes not need$ipv6_dhcp_duid => 'auto'any more (it failed to compile before); the value'unset'(for the class and for a connection) does not write the DUID so NetworkManager uses its own default; a connection with theautoDUID and without the$mac_addressstill fails, with a message that points to the ways out (#29); the DUID is resolved bynetworkmanager::resolve_ipv6_duid- an ethernet
networkmanager::ifc::connectionwithout$interface_nameand$mac_addressuses its title as the interface name (it failed to compile before), a title which can not be an interface name fails with a clear message (#31) $ipv4_addressand$ipv6_addressaccept more addresses as an array or as a string separated by a semicolon, they are written asaddress1,address2, ... (a single address is still written asaddress), verified with NetworkManager from 1.10.12 to 1.54 (#33)$ipv4_dnsand$ipv6_dnsaccept also an array of up to 5 addresses (validated by thestdlibIP address types), the semicolon separated string is still accepted and may contain compressed IPv6 addresses- OpenVox 7 and 8 are supported and tested in the CI (
OPENVOX_GEM_VERSIONselects it in theGemfile) - supported:
puppet>= 4.9.2 < 9.0.0andpuppetlabs/stdlib>= 5.2.0 < 11.0.0(verified against the individual releases); operating systems AlmaLinux, Amazon Linux, Arch Linux, CentOS, Debian, Fedora, Gentoo, Manjaro, Oracle Linux, RedHat, Rocky and Ubuntu (#30) REFERENCE.mddescribes the classes, defined types, functions, data types and the fact
Fixes
networkmanager::ifc::connection,::bond,::bridgeand::vlanbuild their keyfile through the newnetworkmanager::compact_keyfilefunction, the generated files are unchangedvlan_parentis a managed connection$idor a plain UUID (NetworkManager does not accept any prefix likeUUID=), documented and tested; the parent interface name is deliberately not supported (#34)- the example in the README used a connection id shorter than the 3 characters required, an invalid DUID and had missing commas, it compiles now (#32)
- the error for an unsupported OS family names the family instead of the garbled message
networkmanager::ipv6_disable_versiondoes not fail before NetworkManager is installed (the fact is missing then)- typos in the documentation, the comments and the messages
Maintenance
- the spec tests were rewritten to run against every operating system release listed in
metadata.json, a GitHub Actions workflow runs the metadata, syntax and lint checks and the specs on Puppet 6, 7 and 8 and OpenVox 7 and 8 - the parameters of the classes and defined types are documented in the
@paramformat and the lint has no warnings - the PDK leftovers (Travis, GitLab and AppVeyor configs,
.rubocop.yml,.sync.yml,pdk.yaml,.yardopts,.pdkignore, the dev container and VS Code settings, thepdk-*andtemplate-*keys ofmetadata.json) were removed and theRakefilewas reduced to the tasks used by the tests