diff --git a/.gitea/workflows/test.yaml b/.gitea/workflows/test.yaml new file mode 100644 index 0000000..ef09de8 --- /dev/null +++ b/.gitea/workflows/test.yaml @@ -0,0 +1,63 @@ +--- +name: Test + +on: # noqa: yaml[truthy] + push: + branches: + - main + - feature/** + pull_request: + branches: + - main + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install tools + run: | + pip install --no-cache-dir yamllint ansible-lint + + - name: Run yamllint + run: yamllint -d relaxed . + + - name: Run ansible-lint + run: ansible-lint --strict --profile=production + + test: + name: Test + runs-on: ubuntu-latest + needs: lint + if: github.event_name == 'pull_request' + steps: + - uses: actions/checkout@v6 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Install podman + run: | + sudo apt-get update + sudo apt-get install -y podman + + - name: Install dependencies + run: | + pip install --no-cache-dir \ + ansible \ + molecule[podman] \ + podman-compose \ + pyyaml \ + jinja2 + + - name: Run Molecule tests + run: molecule test diff --git a/CONFIGURATION_GRAMMAR.md b/CONFIGURATION_GRAMMAR.md index 2c8442a..211a80f 100644 --- a/CONFIGURATION_GRAMMAR.md +++ b/CONFIGURATION_GRAMMAR.md @@ -458,6 +458,7 @@ options: -
- address:
port: + tls: # DNSSEC dnssec_enable: # DEPRECATED in 9.15+ @@ -540,6 +541,19 @@ options: # Logging querylog: + # DNSTAP - DNS traffic capture + dnstap: # List of message types to capture + - type: # Message type (required) + log: # Optional: specific direction + dnstap_output: # Output destination (required if dnstap is set) + output_type: # Output type: file or unix socket (required) + output_file: # File path or socket path (required) + size: # Optional: Max file size before rotation + versions: # Optional: Number of versions to keep + suffix: # Optional: Rotation suffix type + dnstap_identity: # Optional: Identity string (defaults to hostname) + dnstap_version: # Optional: Version string (defaults to BIND version) + # Zone management check_names: check_dup_records: @@ -593,7 +607,8 @@ options: forwarders: - 1.1.1.1 - - 8.8.8.8 + - address: 8.8.8.8 + tls: dot-tls dnssec_validation: auto @@ -917,6 +932,7 @@ zones: -
- address:
port: + tls: # DNSSEC dnssec_policy: # DNSSEC policy to use @@ -1017,7 +1033,8 @@ zones: forward: only forwarders: - 10.0.0.1 - - 10.0.0.2 + - address: 10.0.0.2 + tls: internal-tls ``` --- @@ -1079,9 +1096,9 @@ addresses: - 10.0.0.0/8 ``` -### Address with Port/DSCP +### Address with Port/TLS -For options accepting `address [port X] [dscp Y]`: +For options accepting `address [port X] [tls Y]` (e.g., `forwarders`): ```yaml # Simple list @@ -1089,27 +1106,28 @@ forwarders: - 1.1.1.1 - 8.8.8.8 -# With source port/dscp +# With global port/tls forwarders: - port: 5353 - dscp: 46 + port: 853 + tls: dot-tls addresses: - 1.1.1.1 - 8.8.8.8 -# Per-address port/dscp +# Per-address port/tls forwarders: - address: 1.1.1.1 port: 53 - address: 8.8.8.8 - port: 5353 - dscp: 46 + port: 853 + tls: cloudflare-tls # Mixed format forwarders: - 1.1.1.1 - address: 8.8.8.8 - port: 5353 + port: 853 + tls: dot-tls ``` ### Address with Key/TLS diff --git a/README.md b/README.md index 8330195..9491dee 100644 --- a/README.md +++ b/README.md @@ -126,38 +126,43 @@ Simple options are defined just as that. ``` Some options have several optional parameters. For those, a somewhat flexible -configuration format has been created +configuration format has been created. Common patterns include: + +- **Address with Port/DSCP**: Used by options like `primaries`, `parental_agents` (e.g., `address [ port ] [ dscp ]`) +- **Address with Port/TLS**: Used by options like `forwarders` (e.g., `address [ port ] [ tls ]`) + ``` - IP_PORT_DSCP_OPTION: # Any option that is defined as one of: - #