Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GH Actions: fix issues with CI #221

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions molecule/pdns-47/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ dependency:
name: galaxy

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

- name: rockylinux-8
Expand Down
4 changes: 2 additions & 2 deletions molecule/pdns-48/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ dependency:
name: galaxy

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

- name: rockylinux-8
Expand Down
4 changes: 2 additions & 2 deletions molecule/pdns-49/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ dependency:
name: galaxy

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

- name: rockylinux-8
Expand Down
4 changes: 2 additions & 2 deletions molecule/pdns-master/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ dependency:
name: galaxy

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

- name: rockylinux-8
Expand Down
2 changes: 1 addition & 1 deletion molecule/resources/create.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,5 @@
privileged: "yes"
volumes:
# Mount the cgroups fs to allow SystemD to run into the containers
- "/sys/fs/cgroup:/sys/fs/cgroup:ro"
- "/sys/fs/cgroup:/sys/fs/cgroup:rw"
with_items: "{{ molecule_platform_instances }}"
8 changes: 5 additions & 3 deletions molecule/resources/tests/backend-mysql/test_backend_mysql.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ def test_config(host):
def test_database_tables(host):
dbname = host.check_output('hostname -s').replace('.', '_')

cmd = host.run("mysql --user=\"pdns\" --password=\"pdns\" --host=\"mysql\" " +
"--batch --skip-column-names " +
"--execute=\"SELECT DISTINCT table_name FROM information_schema.columns WHERE table_schema = '%s'\"" % dbname)
mysql_cmd = 'mariadb --skip-ssl-verify-server-cert' if host.system_info.distribution.lower() in archlinux_os else 'mysql'

cmd = host.run(
f'{mysql_cmd} --user="pdns" --password="pdns" --host="mysql" --batch --skip-column-names --execute="SELECT DISTINCT table_name FROM information_schema.columns WHERE table_schema = \'{dbname}\'"'
)

for table in [ 'domains', 'records', 'supermasters', 'comments',
'domainmetadata', 'cryptokeys', 'tsigkeys' ]:
Expand Down
4 changes: 2 additions & 2 deletions molecule/resources/tests/repo-master/test_repo_master.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,5 @@ def test_repo_pinning_file(host):
def test_pdns_version(host):
cmd = host.run('/usr/sbin/pdns_server --version')

assert 'PowerDNS Authoritative Server' in cmd.stderr
assert 'master' in cmd.stderr
assert 'PowerDNS Authoritative Server' in cmd.stderr or 'PowerDNS Authoritative Server' in cmd.stdout
assert 'master' in cmd.stderr or 'master' in cmd.stdout
12 changes: 12 additions & 0 deletions molecule/systemd-no-overrides/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,23 @@ platforms:
- 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 }


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

provisioner:
Expand Down
20 changes: 8 additions & 12 deletions tasks/database-mysql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@
- skip_missing: yes

- name: Check if the MySQL databases are empty
command: >
mysql --user="{{ item['value']['user'] }}" --password="{{ item['value']['password'] }}"
--host="{{ item['value']['host'] }}" --port "{{ item['value']['port'] | default('3306') }}" --batch --skip-column-names
--execute="SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '{{ item['value']['dbname'] }}'"
shell: |-
{{ pdns_backends_mysql_cmd | default('mysql') }} --user="{{ item['value']['user'] }}" --password="{{ item['value']['password'] }}" \
--host="{{ item['value']['host'] }}" --port "{{ item['value']['port'] | default('3306') }}" --batch --skip-column-names \
--execute="SELECT COUNT(DISTINCT table_name) FROM information_schema.columns WHERE table_schema = '{{ item['value']['dbname'] }}'"
when: item.key.split(':')[0] == 'gmysql'
with_dict: "{{ pdns_backends }}"
register: _pdns_check_mysql_db
Expand All @@ -64,15 +64,11 @@
set_fact:
pdns_mysql_schema_file_to_use: "{% if pdns_mysql_schema_file | length == 0 %}{{ pdns_mysql_schema_file_detected.stdout }}{% else %}{{ pdns_mysql_schema_file }}{% endif %}"


- name: Import the PowerDNS MySQL schema
mysql_db:
login_user: "{{ item['item']['value']['user'] }}"
login_password: "{{ item['item']['value']['password'] }}"
login_host: "{{ item['item']['value']['host'] }}"
login_port: "{{ item['item']['port'] | default('3306') }}"
name: "{{ item.item['value']['dbname'] }}"
state: import
target: "{{ pdns_mysql_schema_file_to_use }}"
shell: |-
{{ pdns_backends_mysql_cmd | default('mysql') }} --user="{{ item['item']['value']['user'] }}" --password="{{ item['item']['value']['password'] }}" --host="{{ item['item']['value']['host'] }}" \
--port="{{ item['item']['port'] | default('3306') }}" "{{ item.item['value']['dbname'] }}" < "{{ pdns_mysql_schema_file_to_use }}"
no_log: True
when: "item['item']['key'].split(':')[0] == 'gmysql' and item['stdout'] == '0'"
with_items: "{{ _pdns_check_mysql_db['results'] }}"
2 changes: 1 addition & 1 deletion tasks/inspect.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

- name: Obtain the version of the running PowerDNS instance
shell: |
pdns_server --version 2>&1 | awk '/PowerDNS Authoritative/{print $7}'
pdns_server --version 2>&1 | grep -o "PowerDNS Authoritative Server.*" | awk '{print $4}'
register: _pdns_version
check_mode: no
changed_when: False
Expand Down
2 changes: 1 addition & 1 deletion test-requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ molecule-plugins[docker]==23.4.1
molecule-plugins[lint]==23.4.1
molecule==5.1.0
pytest-testinfra==8.1.0
docker==6.1.3
docker==7.1.0
3 changes: 3 additions & 0 deletions vars/Archlinux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ default_pdns_backends_packages: {}
# The directory where the PowerDNS configuration is located
default_pdns_config_dir: '/etc/powerdns'

# Change the default mysql client to mariabd "--skip-ssl-verify-server-cert"
pdns_backends_mysql_cmd: 'mariadb --skip-ssl-verify-server-cert'

# Packages to install for MySQL support
pdns_mysql_packages:
- python-pymysql
Expand Down