Skip to content

Commit

Permalink
Merge pull request #180 from npmdnl/npmdnl-auth48
Browse files Browse the repository at this point in the history
adding pdns-48
  • Loading branch information
npmdnl committed Jul 25, 2023
2 parents 19aa535 + c9812cc commit 76ce563
Show file tree
Hide file tree
Showing 8 changed files with 178 additions and 3 deletions.
1 change: 1 addition & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
scenario:
- pdns-46
- pdns-47
- pdns-48
- pdns-master
- pdns-os-repos
- systemd-no-overrides
Expand Down
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,13 @@ By default, the PowerDNS Authoritative Server is installed from the software rep
- hosts: all
roles:
- { role: PowerDNS.pdns,
pdns_install_repo: "{{ pdns_auth_powerdns_repo_47 }}"
pdns_install_repo: "{{ pdns_auth_powerdns_repo_47 }}"

# Install the PowerDNS Authoritative Server from the '4.8.x' official repository
- hosts: all
roles:
- { role: PowerDNS.pdns,
pdns_install_repo: "{{ pdns_auth_powerdns_repo_48 }}"
```
The examples above, show how to install the PowerDNS Authoritative Server from the official PowerDNS repositories
Expand Down Expand Up @@ -347,7 +353,7 @@ To test all the scenarios run

To run a custom molecule command

$ tox -e ansible214 -- molecule test -s pdns-47
$ tox -e ansible214 -- molecule test -s pdns-48

## License

Expand Down
9 changes: 9 additions & 0 deletions molecule/pdns-48/converge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---

- hosts: pdns
vars_files:
- ../resources/vars/pdns-common.yml
- ../resources/vars/pdns-repo-48.yml
- ../resources/vars/pdns-backends.yml
roles:
- { role: powerdns.pdns }
99 changes: 99 additions & 0 deletions molecule/pdns-48/molecule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
---

scenario:
name: pdns-48

driver:
name: docker

dependency:
name: galaxy

platforms:
- name: centos-7
groups: ["pdns"]
image: centos:7
dockerfile_tpl: centos-systemd

- name: oraclelinux-9
groups: ["pdns"]
image: oraclelinux:9
dockerfile_tpl: centos-systemd

- name: oraclelinux-8
groups: ["pdns"]
image: oraclelinux:8
dockerfile_tpl: centos-systemd

- name: ubuntu-2004
groups: ["pdns"]
image: ubuntu:20.04
tmpfs:
- /run
- /tmp
dockerfile_tpl: debian-systemd

- name: debian-10
groups: ["pdns"]
image: debian:10
privileged: True
volume_mounts:
- "/sys/fs/cgroup:/sys/fs/cgroup:rw"
tmpfs:
- /run
- /run/lock
- /tmp
dockerfile_tpl: debian-systemd
environment: { container: docker }

# In order to run the tests we need
# a MySQL container to be up & running
- name: mysql
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: pdns
# Declaring the container as service,
# will link it to the others Platforms containers
# on creation.
is_service: yes

provisioner:
name: ansible
options:
diff: True
v: True
config_options:
defaults:
gathering: smart
fact_caching: jsonfile
fact_caching_connection: .ansible_cache
fact_caching_timeout: 7200
ssh_connection:
pipelining: true
inventory:
links:
host_vars: ../resources/host_vars/
playbooks:
create: ../resources/create.yml
destroy: ../resources/destroy.yml
prepare: ../resources/prepare.yml
# "systemctl used in place of systemd module" "ANSIBLE0006"
# "Tasks that run when changed should likely be handlers" "ANSIBLE0016"
# "Shells that use pipes should set the pipefail option" "306"
lint: ansible-lint -x ANSIBLE0006 ANSIBLE0016 306

lint: yamllint defaults tasks meta vars

verifier:
name: testinfra
options:
hosts: "pdns"
vvv: True
directory: ../resources/tests/all
additional_files_or_dirs:
# path relative to 'directory'
- ../repo-48/
- ../backend-sqlite/
- ../backend-mysql/
- ../systemd-override/

44 changes: 44 additions & 0 deletions molecule/resources/tests/pdns-48/test_repo_48.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@

debian_os = ['debian', 'ubuntu']
rhel_os = ['redhat', 'centos', 'ol']


def test_repo_file(host):
f = None
if host.system_info.distribution.lower() in debian_os:
f = host.file('/etc/apt/sources.list.d/powerdns-auth-48.list')
if host.system_info.distribution.lower() in rhel_os:
f = host.file('/etc/yum.repos.d/powerdns-auth-48.repo')

assert f.exists
assert f.user == 'root'
assert f.group == 'root'


def test_pdns_repo(host):
f = None
if host.system_info.distribution.lower() in debian_os:
f = host.file('/etc/apt/sources.list.d/powerdns-auth-48.list')
if host.system_info.distribution.lower() in rhel_os:
f = host.file('/etc/yum.repos.d/powerdns-auth-48.repo')

assert f.exists
assert f.contains('auth-48')


def test_repo_pinning_file(host):
if host.system_info.distribution.lower() in debian_os:
f = host.file('/etc/apt/preferences.d/pdns')
assert f.exists
assert f.user == 'root'
assert f.group == 'root'
f.contains('Package: pdns-*')
f.contains('Pin: origin repo.powerdns.com')
f.contains('Pin-Priority: 600')


def test_pdns_version(host):
cmd = host.run('/usr/sbin/pdns_server --version')

assert 'PowerDNS Authoritative Server' in cmd.stderr
assert '4.8' in cmd.stderr
2 changes: 1 addition & 1 deletion molecule/resources/vars/pdns-no-overrides.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,5 @@ pdns_config:
webserver-address: "0.0.0.0"
webserver-port: "8001"

pdns_install_repo: "{{ pdns_auth_powerdns_repo_47 }}"
pdns_install_repo: "{{ pdns_auth_powerdns_repo_48 }}"
pdns_service_overrides: ''
7 changes: 7 additions & 0 deletions molecule/resources/vars/pdns-repo-48.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---

##
# PowerDNS 4.8.x Repository
##

pdns_install_repo: "{{ pdns_auth_powerdns_repo_48 }}"
9 changes: 9 additions & 0 deletions vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,15 @@ pdns_auth_powerdns_repo_47:
yum_debug_symbols_repo_baseurl: "http://repo.powerdns.com/centos/$basearch/$releasever/auth-47/debug"
name: "powerdns-auth-47"

pdns_auth_powerdns_repo_48:
apt_repo_origin: "repo.powerdns.com"
apt_repo: "deb [arch=amd64] http://repo.powerdns.com/{{ ansible_distribution | lower }} {{ ansible_distribution_release | lower }}-auth-48 main"
gpg_key: "http://repo.powerdns.com/FD380FBB-pub.asc"
gpg_key_id: "9FAAA5577E8FCF62093D036C1B0C6205FD380FBB"
yum_repo_baseurl: "http://repo.powerdns.com/centos/$basearch/$releasever/auth-48"
yum_debug_symbols_repo_baseurl: "http://repo.powerdns.com/centos/$basearch/$releasever/auth-48/debug"
name: "powerdns-auth-48"


default_pdns_service_overrides: >-
{{ { 'User' : pdns_user
Expand Down

0 comments on commit 76ce563

Please sign in to comment.