Update dependency PowerDNS/pdns_recursor-ansible to v2 - #2539
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/powerdns-pdns_recursor-ansible-2.x
branch
from
August 27, 2026 16:08
7ee23e3 to
27d1f5b
Compare
Signed-off-by: Renovate Bot <bot@renovateapp.com>
renovate
Bot
force-pushed
the
renovate/powerdns-pdns_recursor-ansible-2.x
branch
from
September 8, 2026 00:30
27d1f5b to
ef3f140
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v1.8.1→v2.2.0Release Notes
PowerDNS/pdns_recursor-ansible (PowerDNS/pdns_recursor-ansible)
v2.2.0: Version 2.2.0Compare Source
v2.2.0
Documentation Changes
pdns_rec_userandpdns_rec_grouphave to name the account the service starts as, now that they are written to the configuration assetuidandsetgid. The packaged units already agree with them; an override that changesUser=,Group=orExecStarthas to change them with it, because a daemon asked to become an account other than the one it was started as exits rather than continue with the wrong privileges (#268).threadsandmax_mthreadsunderrecursorrather thanoutgoing, and the settings needed to enable the REST API (#268).--skip-tags servicestill restarts the service on a configuration change (#267).Minor Changes
incoming.reuseport,outgoing.source_address,recursor.extended_resolution_errors,recursor.threadsandrecursor.max_mthreadsto the baseline configuration the role mergespdns_rec_configover (#268).pdns_rec_config_dir_modeandpdns_rec_config_file_mode. The directory mode is symbolic,u=rwX,g=rX,o=, so that the capitalXgrants execute on directories, and on files that already carry it, but never marks a plain RPZ zone or include fragment executable (#268).pdns_rec_flush_handlersto run the notified handlers at the end of the role instead of at the end of the play, which is required when the role runs more than once in a play (#264).multi-instanceMolecule scenario, which configures two instances in a single play (#264).pdns_rec_config_additional_dirsentry to the whole tree, so a file another role or the recursor itself placed there stays readable by the account the daemon runs as.pdns_rec_config_dirs_recurseturns it off, globally or per entry through arecursekey. Symlinks are not followed, so a link inside one of these directories - an RPZ zone kept on shared storage, say - cannot turn the recursion into a chown and chmod of whatever it points at. Three directories are never walked - the configuration directory, because it holds therecursor.yml-distof the package; the directory named byrecursor.include_dir, because it holds the operator's drop-ins; and the one named bywebservice.api_dir, because its contents are state the daemon rewrites (#268).requirements.yml. A collection that raises itsrequires_ansiblein a new major would otherwise break the ansible-core 2.16 leg on the day it is published, without a change in this repository (#266).ansible.builtin.systemd_serviceon systemd hosts and withansible.builtin.serviceon hosts without systemd, instead of mixing the two modules across the service task and the handlers (#266).ansible_factsinstead of the injected top-levelansible_*variables. ansible-core deprecated that injection and removes it in 2.24, after which a role readingansible_distributionwould break. The Molecule configuration setsinject_facts_as_vars: false, so a missed reference fails a test run instead of surfacing on a future ansible-core (#266).webservice.api_dirneeds an entry of its own, from a membership test against a concatenated list to two separate comparisons. The result is the same directory list; the concatenation madeansible-lint26 fail the repository with ajinja[invalid]violation,can only concatenate str (not "list") to str, because the rule renders the referenced variable to a string before evaluating the expression (#269).Breaking Changes / Porting Guide
incoming.allow_fromto127.0.0.0/8. The recursor's own default is the RFC 1918 set plus loopback and link-local (10.0.0.0/8,100.64.0.0/10,169.254.0.0/16,192.168.0.0/16,172.16.0.0/12,::1/128,fc00::/7,fe80::/10), and the baseline now replaces it rather than adding to it, becauseansible.builtin.combineoverwrites a list instead of merging it. A deployment that relies on the default to serve clients on a private range therefore starts refusing them after this upgrade, and one that serves IPv6 loses::1/128. Declare the ranges the host should answer for inpdns_rec_config.incoming.allow_from(#268).Removed Features (previously deprecated)
rec-masterrepository and the 5.1 series, and test the three most recent release series instead. Thepdns_rec_powerdns_repo_masterandpdns_rec_powerdns_repo_51presets are unchanged and still usable (#266).Bugfixes
pdns_recursor, the configuration lives in/usr/local/etc/pdnsand the daemon is/usr/local/sbin/pdns_recursor, following thedns/powerdns-recursorport. The configuration check no longer hardcodes/usr/sbin(#266).recursor.include_dirandwebservice.api_dir. The recursor reads that setting whether or not the webserver is enabled and exits withNo such file or directorywhen the directory is absent, so a configuration that set it without also listing the directory inpdns_rec_config_additional_dirsleft the daemon unable to start. The same is true ofrecursor.include_dir, which the baseline now declares. The API directory is owned bypdns_rec_user, because the REST API writes into it (#268).tasks/main.ymlincludesinstall-{{ ansible_facts.system }}.ymland only the Linux variant existed, so a FreeBSD run failed at the installation step. The new task installs throughansible.builtin.packageand skips the debug symbols package, which FreeBSD does not ship (#266).recursor.include_dirin the configuration the role writes. The role writes over the file the packages ship, which declares it, so the directory an operator keeps drop-ins in was no longer read (#268).pdns_rec_flush_handlersset totrue(#264)./etc/systemd/system/<service name>.service.d/whenpdns_rec_package_stateisabsent, so a later reinstall does not inherit the overrides of the previous installation. The task is taggedinstall, because removal runs through the install path (#267)./etc/systemd/system/<service name>.service.d/override.confwhen the merged service overrides are empty, and restart the service. The file used to stay on disk, so emptyingpdns_rec_service_overrideskept the previous overrides applied forever. Other drop-ins in that directory are left alone (#267).daemon_reloadhandler used the systemd module unconditionally, so a FreeBSD run failed as soon as a configuration change notified them (#266).recursor.setuidandrecursor.setgidin the configuration the role writes. They were dropped when the configuration moved to thepdns_rec_configdictionary, so the file no longer told the recursor to drop privileges and a start that does not come from the packaged unit - a hand-written unit, anExecStartoverride installed throughpdns_rec_service_overrides, or a run outside systemd - left the daemon running as the account that launched it (#268).pdns-recursor-dbgpackage, so enablingpdns_rec_install_debug_symbols_packagethere failed (#266).--skip-tags service. Ansible filters tasks by tag but not handlers, so a run that deliberately left the service alone still restarted it on a configuration change - and restarting an inactive unit starts it. The handlers readansible_skip_tagsand still reload the units, so a--tags configrun is unaffected (#267).pdns_rec_config_additional_fileswere written with mode0750, which is meaningless for files the recursor only ever reads, such as RPZ zones and include fragments. They are now written withpdns_rec_config_file_mode,0640by default (#268).Set fact for repo nametask withinstallandrepositoryso thatpdns_rec_repo_nameandpdns_rec_repo_regexare defined in filtered runs (#263).configure.yml,install-*.ymlandrepo-*.ymlso that--tags config,--tags installand--tags repositoryno longer run the include and skip its body. A dynamicinclude_tasksdoes not pass its tags to the tasks it includes, so filtered runs silently did nothing and still exited 0 (#263).pdns_rec_service_overrideswhile the template renders the merge of that variable with the platform defaults. No shipped platform sets a default override today, so this was latent, but a default added later would not have reached the unit (#267).v2.1.0: Version 2.1.0Compare Source
v2.1.0
Documentation Changes
pdns_rec_package_state,pdns_rec_bin_name, andpdns_rec_service_overridesvariables in the README (#245).True/False→true/false) (#245).apt_repoandgpg_key_id, addedapt_version) (#245).Major Changes
recursor.conf.j2that automatically converts stringified integers, floats, booleans, and lists to their native YAML types when rendering the configuration (#245).Minor Changes
pdns_rec_package_statevariable to allow controlling the desired state of the PowerDNS Recursor packages (present, latest, or absent) (#245).ansible_architectureto lowercase when mapping to APT architecture names to handle inconsistent facts (#245).api_keyin molecule test variables to verify that vaulted values are correctly decrypted and rendered into the configuration file (#245).Breaking Changes / Porting Guide
ansible.builtin.deb822_repository— the legacyapt_key/apt_repositoryfallback for Ubuntu < 22.04 has been removed. This requirespython3-debianon target hosts and Ansible >= 2.15 (#245).apt_repoandgpg_key_idkeys are no longer used in custom repository definitions; useapt_versionandgpg_keyinstead (#245).powerdns-recursor.sources.j2template has been removed (#245).Bugfixes
recursor.conf.j2template to coerceAnsibleVaultEncryptedUnicodevalues to plain strings before type-normalisation, allowing!vaultencrypted values to be used directly inside configuration dicts (#245).default_pdns_recorsor_debug_symbols_package_nametodefault_pdns_rec_debug_symbols_package_namein Archlinux, Debian, and Other vars files (#245).v2.0.0: Version 2.0.0Compare Source
v2.0.0
Major Changes
Minor Changes
Breaking Changes / Porting Guide
Removed Features (previously deprecated)
Bugfixes
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.