96 Commits

Author SHA1 Message Date
Daniel Akulenok
77212eef9b improve molecule
Some checks failed
Test / Lint (push) Failing after 1m40s
Test / Test (push) Has been skipped
2026-02-12 15:05:51 +01:00
Daniel Akulenok
79ac474a85 Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role
All checks were successful
Test / Lint (push) Successful in 15s
Test / Test (push) Has been skipped
2026-02-09 12:34:04 +01:00
abd150f581 Merge pull request 'Fix default Molecule scenario and add testing skill' (#18) from fix/molecule-default-test into main
All checks were successful
Test / Lint (push) Successful in 16s
Test / Test (push) Has been skipped
Reviewed-on: #18
2026-02-09 11:33:11 +00:00
Daniel Akulenok
cb20db00af Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role
All checks were successful
Test / Lint (push) Successful in 17s
Test / Test (push) Has been skipped
2026-02-09 12:17:45 +01:00
Daniel Akulenok
07f84b7c96 Fix Molecule default scenario tests
Some checks failed
Test / Lint (pull_request) Successful in 16s
Test / Test (pull_request) Failing after 2m12s
2026-02-08 20:43:56 +01:00
Daniel Akulenok
a4f06d3daf fix: Install molecule-podman driver for CI/CD tests
All checks were successful
Test / Lint (push) Successful in 16s
Test / Test (push) Has been skipped
The test stage was failing because molecule couldn't find the podman
driver. The issue was that 'molecule[podman]' extra doesn't exist in
molecule 25.12.0. Install 'molecule-podman' package instead which
provides the required podman driver for molecule.
2026-02-08 00:29:47 +01:00
Daniel Akulenok
282e7601b4 fix: Add pipefail option to shell command in verify.yml
All checks were successful
Test / Lint (push) Successful in 15s
Test / Test (push) Has been skipped
Resolves ansible-lint risky-shell-pipe violation by adding
'set -o pipefail' to shell task that uses pipes.
2026-02-08 00:26:46 +01:00
f15d33b619 Merge pull request 'feat: Add BIND9 9.20 support with molecule scenario and documentation' (#14) from feature/bind9-20-support into main
Some checks failed
Test / Lint (push) Failing after 15s
Test / Test (push) Has been skipped
Reviewed-on: #14
2026-02-07 23:21:35 +00:00
Daniel Akulenok
a298665e93 fix: Improve BIND9 9.20 molecule scenario testing
Some checks failed
Test / Lint (push) Failing after 15s
Test / Lint (pull_request) Failing after 15s
Test / Test (push) Has been skipped
Test / Test (pull_request) Has been skipped
- Add dnsutils and bind9-doc installation in prepare.yml
  Ensures dig command and documentation are available for testing

- Enhance verify.yml with improved validation:
  - Add named-checkconf syntax validation
  - Improve error detection logic in BIND logs
  - Add explicit error check assertions
  - Increase log tail output from 20 to 30 lines for better diagnostics

These fixes address PR #14 review issues #3, #4, and #5:
- Issue #3: Molecule converge.yml configuration (valid, no changes needed)
- Issue #4: prepare.yml now installs required testing tools
- Issue #5: verify.yml now includes better validation and error checking

Related to: PR #14
2026-02-08 00:20:51 +01:00
Daniel Akulenok
528caeddeb feat: Add BIND9 9.20 molecule scenario and support documentation
Some checks failed
Test / Lint (push) Successful in 15s
Test / Lint (pull_request) Successful in 15s
Test / Test (push) Has been skipped
Test / Test (pull_request) Failing after 34s
- Added molecule/bind9-20 scenario for testing BIND9 9.20+ compatibility
  - molecule.yml: Ubuntu 24.04 platform configuration
  - converge.yml: Complete 9.20 configuration with TLS, DNSTAP, and modern features
  - verify.yml: Comprehensive test cases for 9.20 features
  - collections.yml: Required Ansible collections
  - prepare.yml: Pre-test environment setup
  - README.md: Scenario documentation with breaking changes reference

- Added docs/BIND9_9.20_SUPPORT.md implementation guide
  - Architecture overview for multi-version support
  - Runtime version detection strategy
  - Configuration changes and examples
  - Migration path for upgrading users
  - Feature highlights for BIND9 9.20

- Updated meta/argument_specs.yml
  - Added multi-version support documentation
  - Documented bind9_version variable (read-only, auto-detected)
  - Clarified supported BIND9 versions (9.18.x LTS and 9.20+)

These changes establish the feature/bind9-20-support branch as the development
path for BIND9 9.20+ support, separate from the main branch's 9.18.x focus.

Closes #9: Create feature/bind9-20-support branch with 9.20 templates
2026-02-07 23:58:31 +01:00
Daniel Akulenok
0eff38f202 docs: Add detailed project workflow steps to AGENTS.md
All checks were successful
Test / Lint (push) Successful in 13s
Test / Test (push) Has been skipped
2026-02-07 23:54:25 +01:00
Daniel Akulenok
14a8ff61cf docs: Make AGENTS.md instructions concise and precise
All checks were successful
Test / Lint (push) Successful in 14s
Test / Test (push) Has been skipped
2026-02-07 23:48:14 +01:00
Daniel Akulenok
1c635e5c55 docs: Add comprehensive BIND9 9.18 to 9.20 migration guide
All checks were successful
Test / Lint (push) Successful in 14s
Test / Test (push) Has been skipped
- Create step-by-step migration guide with pre-planning checklist
- Document all 44 breaking changes with explanations
- Provide before/after configuration examples
- Include Ansible role-specific changes and branch selection
- Add DNSSEC policy migration guidance
- Include testing recommendations and validation checklist
- Provide rollback procedures for safe migration
- Link to technical version differences documentation

Closes #6
2026-02-07 23:46:18 +01:00
Daniel Akulenok
db379be31f docs: Add BIND9 version comparison and migration guidance
- Generate BIND_VERSION_DIFFERENCES.md with detailed grammar comparison
- Document 44 breaking changes between BIND9 9.18.44 and 9.20.18
- Document 35 new options and 22 modified options in BIND9 9.20
- Document 3 newly deprecated options
- Add version compatibility section to CONFIGURATION_GRAMMAR.md
- Update CHANGELOG.md with version differences details
- Include migration guide for upgrading from 9.18 to 9.20

Closes #11
2026-02-07 23:43:51 +01:00
Daniel Akulenok
9df24a4a30 docs: Add repository actions guidelines for Gitea interaction
All checks were successful
Test / Lint (push) Successful in 14s
Test / Test (push) Has been skipped
2026-02-07 23:40:16 +01:00
Daniel Akulenok
9622514d84 Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role
All checks were successful
Test / Lint (push) Successful in 13s
Test / Test (push) Has been skipped
2026-02-07 23:36:56 +01:00
1ee8ac1e0b Merge pull request 'docs: Add BIND9 grammar files for v9.18.44 and v9.20.18' (#13) from 9.18 into main
All checks were successful
Test / Lint (push) Successful in 13s
Test / Test (push) Has been skipped
Reviewed-on: #13
2026-02-07 22:33:14 +00:00
Daniel Akulenok
4151c9a8c3 docs: Add BIND9 grammar files for v9.18.44 and v9.20.18
Some checks failed
Test / Lint (pull_request) Successful in 12s
Test / Test (pull_request) Failing after 22s
- Fetch official BIND9 configuration grammar files from Gitea mirror
- v9.18.44: Complete grammar including delegation-only.zoneopt
- v9.20.18: Grammar files with v9.20 specific syntax updates
- Files organized in upstream/vX.Y.Z/grammar/ directory structure
- Enables configuration validation and version comparison tooling
- Supports documentation generation and compatibility checking
2026-02-07 23:31:04 +01:00
Daniel Akulenok
6191eaa53a docs: Add branch version marker for 9.18 LTS support
- Identify 9.18 branch as BIND9 9.18.x LTS support line
- Document supported platforms and backporting policies
- Link to version support policy and documentation
2026-02-07 22:53:18 +01:00
Daniel Akulenok
5875c7c1d0 docs: Update README with version compatibility matrix
- Add version support table to README
- Link to VERSION_SUPPORT.md for detailed policies
- Add minimum requirements documentation
- Update license to GPL-3.0-or-later
- Add links to key documentation and contributing info
2026-02-07 22:52:53 +01:00
Daniel Akulenok
4c6a3061bd feat: Add grammar fetch and comparison tooling
- Add fetch_bind_grammar.py for MCP-based grammar file retrieval
- Add compare_bind_versions.py for version differences analysis
- Add process_mcp_result.py for handling base64-encoded MCP output
- Create upstream directory structure with fetching instructions
- Document grammar file locations and structure
2026-02-07 22:52:53 +01:00
Daniel Akulenok
ef45f4ef0b docs: Add version support policy and changelog
- Establish formal version maintenance strategy
- Define BIND9 9.18 (LTS) and 9.20+ support tiers
- Document branching strategy (main for 9.18, 9.20 for next major)
- Define backporting policies for security, bugs, features
- Create release management and CI/CD framework
- Add OS platform compatibility matrix
2026-02-07 22:52:53 +01:00
Daniel Akulenok
3221070075 docs: Update README with version compatibility matrix
- Add version support table to README
- Link to VERSION_SUPPORT.md for detailed policies
- Add minimum requirements documentation
- Update license to GPL-3.0-or-later
- Add links to key documentation and contributing info
2026-02-07 22:52:41 +01:00
Daniel Akulenok
dc4113088e feat: Add grammar fetch and comparison tooling
- Add fetch_bind_grammar.py for MCP-based grammar file retrieval
- Add compare_bind_versions.py for version differences analysis
- Add process_mcp_result.py for handling base64-encoded MCP output
- Create upstream directory structure with fetching instructions
- Document grammar file locations and structure
2026-02-07 22:52:35 +01:00
Daniel Akulenok
149692bcc4 docs: Add version support policy and changelog
- Establish formal version maintenance strategy
- Define BIND9 9.18 (LTS) and 9.20+ support tiers
- Document branching strategy (main for 9.18, 9.20 for next major)
- Define backporting policies for security, bugs, features
- Create release management and CI/CD framework
- Add OS platform compatibility matrix
2026-02-07 22:52:20 +01:00
Daniel Akulenok
0271be7752 Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role into HEAD
All checks were successful
Test / Lint (push) Successful in 16s
Test / Test (push) Has been skipped
2026-02-06 14:32:10 +01:00
Daniel Akulenok
907735c294 fix: improve readability of bind9 configuration and update variable registration 2026-02-06 13:46:09 +01:00
Daniel Akulenok
cdcc4cbbda fix: standardize YAML formatting and improve readability in bind9 configuration files 2026-02-06 13:38:56 +01:00
Daniel Akulenok
30918dc9f7 Add zone option JSON files for BIND9 grammar
All checks were successful
Test / Lint (push) Successful in 17s
Test / Test (push) Has been skipped
- Created primary.zoneopt.json to define grammar for primary zones with various options including allow-query, allow-transfer, and DNSSEC settings.
- Added redirect.zoneopt.json for redirect zones, specifying options like allow-query and primaries.
- Introduced secondary.zoneopt.json for secondary zones, detailing options such as allow-notify, forwarders, and notify configurations.
- Implemented static-stub.zoneopt.json for static stub zones, including server-addresses and server-names options.
- Added stub.zoneopt.json for stub zones, defining options like check-names and forwarders.
- Created zoneopt.json as a general template for zone options, incorporating common fields across different zone types.
2026-01-31 22:05:58 +01:00
Daniel Akulenok
7388e4eaaf Merge branch 'main' of ssh://git.valid.dk:2222/daniel/ansible-bind9-role 2026-01-31 21:29:19 +01:00
Daniel Akulenok
f6eee76e05 fix: ensure no change detection for bind9 configuration files
All checks were successful
Test / Lint (push) Successful in 12s
Test / Test (push) Has been skipped
2026-01-28 23:37:37 +01:00
0fede04e19 Merge pull request 'feature/forwarders-port-tls-support' (#3) from feature/forwarders-port-tls-support into main
All checks were successful
Test / Lint (push) Successful in 13s
Test / Test (push) Has been skipped
Reviewed-on: #3
2026-01-28 22:29:11 +00:00
Daniel Akulenok
5f4bb3ccda feat: add podman installation step in CI workflow
Some checks failed
Test / Lint (pull_request) Successful in 12s
Test / Test (push) Has been skipped
Test / Test (pull_request) Failing after 21s
Test / Lint (push) Successful in 13s
2026-01-28 23:27:46 +01:00
Daniel Akulenok
4cb9cb3e3f fix: add noqa comments for linting in workflow and role inclusion
Some checks failed
Test / Lint (push) Successful in 13s
Test / Lint (pull_request) Successful in 13s
Test / Test (push) Has been skipped
Test / Test (pull_request) Failing after 37s
2026-01-28 23:25:35 +01:00
Daniel Akulenok
45d9861960 refactor: remove unnecessary tags from backup removal task
Some checks failed
Test / Lint (push) Failing after 12s
Test / Lint (pull_request) Failing after 12s
Test / Test (push) Has been skipped
Test / Test (pull_request) Has been skipped
2026-01-28 23:22:05 +01:00
Daniel Akulenok
28f8ca5c12 fix: resolve ansible-lint errors
Some checks failed
Test / Lint (push) Failing after 7s
Test / Lint (pull_request) Failing after 6s
Test / Test (push) Has been skipped
Test / Test (pull_request) Has been skipped
- Quote octal file mode values (0640, 0750 -> '0640', '0750')
- Add 'Prepare' name to prepare.yml play
- Fix truthy value in .gitea/workflows/test.yaml (on -> 'on')
- Use role name 'bind9' instead of path in converge.yml
- Move tags to top-level for Deploy and Validate Configuration block
- Remove unnecessary comments to clean up code
- Ensure all YAML and Ansible files pass ansible-lint production profile
2026-01-28 23:20:56 +01:00
Daniel Akulenok
17a9918685 fix: resolve yamllint errors
Some checks failed
Test / Lint (push) Failing after 16s
Test / Lint (pull_request) Failing after 12s
Test / Test (push) Has been skipped
Test / Test (pull_request) Has been skipped
- Fix line length in meta/argument_specs.yml (wrap long description)
- Remove extra blank lines in molecule/default/collections.yml
- Fix line lengths in tasks/main.yml (wrap long messages)
- Remove trailing spaces from tasks/main.yml
- Ensure all YAML files pass yamllint with relaxed profile
2026-01-28 23:15:23 +01:00
Daniel Akulenok
ca70afbd51 ci: add simplified Gitea Actions workflow for testing
Some checks failed
Test / Lint (pull_request) Failing after 42s
Test / Test (pull_request) Has been skipped
- Add yamllint for YAML style validation (relaxed profile)
- Add ansible-lint for Ansible best practices (production profile)
- Add Molecule test job that runs only on pull requests
- Lint job runs on all push events to main and feature branches
- Test job depends on lint job passing
- Clean, maintainable pipeline configuration
2026-01-28 23:11:04 +01:00
Daniel Akulenok
68a7b62305 chore: update molecule configuration
- Update prepare.yml with test setup
- Update molecule.yml with test infrastructure configuration
2026-01-28 23:03:41 +01:00
Daniel Akulenok
dae9cb60f5 test: add bind9 forwarding DNS server test case
- Create converge.yml with forwarding DNS configuration
- Configure global forwarders with Google and Cloudflare DNS
- Configure forward-only zone for internal.example with TLS
- Create verify.yml with comprehensive test validation
- Test BIND9 installation, service status, and configuration files
- Verify forwarders and forward zones are properly configured
- Test actual DNS resolution via forwarders
2026-01-28 23:03:30 +01:00
Daniel Akulenok
d075e3ec17 docs: update README.md with port/tls parameter patterns
- Add clarification on different parameter combinations (port/dscp vs port/tls)
- Replace generic 'IP_PORT_DSCP_OPTION' with 'ADDRESS_PORT_TLS_OPTION' example
- Update all configuration examples to show port/tls parameters
- Document usage of forwarders with TLS support
- Improve documentation of flexible configuration formats
2026-01-28 23:03:25 +01:00
Daniel Akulenok
e8f84fce0b docs: update CONFIGURATION_GRAMMAR.md for forwarders port/tls support
- Add tls parameter to forwarders grammar in options section
- Add tls parameter to forwarders grammar in zone section
- Update options and zone examples to demonstrate tls usage
- Rename 'Address with Port/DSCP' section to 'Address with Port/TLS'
- Update all data type examples to show port/tls patterns instead of port/dscp
- Document global and per-address port/tls configuration options
2026-01-28 23:03:19 +01:00
Daniel Akulenok
3d2919721b feat: use parent_address_port_tls macro for forwarders
- Update named.conf.options.j2 to use parent_address_port_tls for forwarders
- Update named.conf.zone.j2 to use parent_address_port_tls for forwarders
- Enables support for per-address and global port/tls parameters
2026-01-28 23:03:07 +01:00
Daniel Akulenok
112ba5f7ca feat: implement list_address_port_tls and parent_address_port_tls macros
- Add list_address_port_tls macro for rendering address lists with port and tls parameters
- Add parent_address_port_tls macro for parent statements with global port/tls
- Follow existing naming pattern with separate list_ and parent_ macros
- Supports forwarders, primaries, and similar blocks with port/tls grammar
2026-01-28 23:02:59 +01:00
Daniel Akulenok
fa35922646 AGENTS 2026-01-28 22:03:18 +01:00
Daniel Akulenok
3d7a403409 fix: Update issue tracker URL in metadata 2026-01-27 23:42:07 +01:00
Daniel Akulenok
30098d48d8 fix: Update issue tracker URL in metadata 2026-01-27 23:40:56 +01:00
Daniel Akulenok
8cbf5279ae docs: Update author and company contact information 2026-01-27 23:30:01 +01:00
Daniel Akulenok
8c0961dd13 test: Configure Molecule testing framework
- Add Ansible collections configuration
- Update converge and prepare playbooks
- Restructure molecule.yml for improved testing
2026-01-27 23:30:01 +01:00
Daniel Akulenok
7fc4c26217 fix: Add explicit boolean comparison for Ansible 2.12+ compatibility 2026-01-27 23:30:01 +01:00