### Define Quickstart Cluster Labels Source: https://doc.powerdns.com/spog/latest/concepts/labels-and-filters Example configurations for the three clusters provided in the quickstart deployment. ```YAML clusterId: "quickstart-1" labels: environment: "production" region: "us-east" role: "dns" team: - "platform" - "security" tier: "critical" ``` ```YAML clusterId: "quickstart-2" labels: environment: "production" region: "us-west" role: "dns" team: "platform" tier: "standard" ``` ```YAML clusterId: "quickstart-3" labels: environment: "development" region: "eu-west" role: "dns" team: "infrastructure" tier: "standard" ``` -------------------------------- ### Install glass-instrumentation for Platform Production Source: https://doc.powerdns.com/spog/latest/examples/team-based-deployment/index.html Installs the glass-instrumentation Helm chart into the 'platform-prod' namespace. This example targets a different team ('platform') in the production environment. ```bash helm install glass-instrumentation \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace platform-prod \ --set global.imagePullSecretsList[0]=registry-credentials \ -f team-based-labels-platform-prod.yaml ``` -------------------------------- ### Install Glass UI with port-forward example Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart Deploys the Glass UI to the 'controlplane' namespace, including a configuration for port-forwarding. Requires 'registry-credentials'. ```bash helm install glass-ui \ oci://registry.open-xchange.com/cc-glass/glass-ui \ --version "1.0.0" \ --namespace "controlplane" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-ui/examples/quickstart.yaml" \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-ui/examples/quickstart-port-forward.yaml" ``` -------------------------------- ### Example Config Settings List Response Source: https://doc.powerdns.com/authoritative/http-api/redoc.html Example structure for a list of configuration settings response. ```JSON [ { "name": "string", "type": "string", "value": "string" } ] ``` -------------------------------- ### Lookup and Get Example Source: https://doc.powerdns.com/authoritative/appendices/backend-writers-guide.html Illustrates how to perform a lookup for a CNAME record and retrieve the associated resource records. ```APIDOC ## Performing a Lookup ### Description This example demonstrates initiating a DNS query for a CNAME record and iterating through the results using the `get()` method. ### Usage ```cpp YourBackend yb; yb.lookup(QType::CNAME, "www.powerdns.com"); DNSResourceRecord rr; while(yb.get(rr)) { cout << "Found cname pointing to '" + rr.content + "'" << endl; } ``` ### Notes - The `lookup` method should prepare the query and handle errors by throwing exceptions. - The `get` method is called repeatedly to fetch all matching resource records. ``` -------------------------------- ### Example Config Setting Response Source: https://doc.powerdns.com/authoritative/http-api/redoc.html Example structure for a single configuration setting response. ```JSON { "name": "string", "type": "string", "value": "string" } ``` -------------------------------- ### Service Configuration Examples Source: https://doc.powerdns.com/cloudcontrol/latest/shared/redis Examples demonstrating how to configure service objects for Redis in different deployment types. ```APIDOC ## Service Configuration Examples ### Read-Write Deployment Example ```yaml : redis: primaryService: type: LoadBalancer annotations: metallb.universe.tf/address-pool: name_of_pool replicaService: type: LoadBalancer annotations: metallb.universe.tf/address-pool: name_of_pool ``` ### Read-Only Deployment Example ```yaml : redis: mirrorService: type: LoadBalancer annotations: metallb.universe.tf/address-pool: name_of_pool ``` ``` -------------------------------- ### Service Configuration Examples Source: https://doc.powerdns.com/cloudcontrol/latest/shared/redis/index.html Examples of service configuration for read-write and read-only deployments. ```APIDOC ## Service Configuration Examples ### Description Examples demonstrating how to configure service objects for different deployment types. ### Read-Write Deployment Example: ```yaml : redis: primaryService: type: LoadBalancer annotations: metallb.universe.tf/address-pool: name_of_pool replicaService: type: LoadBalancer annotations: metallb.universe.tf/address-pool: name_of_pool ``` ### Read-Only Deployment Example: ```yaml : redis: mirrorService: type: LoadBalancer annotations: metallb.universe.tf/address-pool: name_of_pool ``` ``` -------------------------------- ### Install with Custom Configuration Source: https://doc.powerdns.com/cloudcontrol/latest/monitoring Apply custom configuration values using a YAML file during installation. ```bash helm install --namespace= oci://registry.open-xchange.com/cloudcontrol/monitoring --version --values=myenvironment.yaml ``` -------------------------------- ### Install from Local Tarballs Source: https://doc.powerdns.com/cloudcontrol/latest/userplane Install the previously downloaded .tgz files into the cluster. ```bash helm install --namespace= powerdns-crds-.tgz helm install --namespace= powerdns-.tgz ``` -------------------------------- ### Install Local Helm Charts Source: https://doc.powerdns.com/cloudcontrol/latest/monitoring Install the previously downloaded .tgz chart files. ```bash helm install --namespace= monitoring-operators-.tgz helm install --namespace= monitoring-.tgz ``` -------------------------------- ### List all networks example Source: https://doc.powerdns.com/authoritative/http-api/networks.html Example request and response for listing networks on a local server. ```http GET /api/v1/servers/localhost/networks HTTP/1.1 X-API-Key: secret ``` ```http HTTP/1.1 200 OK Content-Type: application/json {"networks": [{"network":"192.168.0.0/16","view":"trusted"},{"network":"0.0.0.0/0","view":"untrusted"}]} ``` -------------------------------- ### Install Monitoring via Registry Source: https://doc.powerdns.com/cloudcontrol/latest/monitoring Install the operators and monitoring charts directly from the remote OCI registry. ```bash helm install --namespace= oci://registry.open-xchange.com/cloudcontrol/monitoring-operators --version helm install --namespace= oci://registry.open-xchange.com/cloudcontrol/monitoring --version ``` -------------------------------- ### Kafka Destination Configuration Example Source: https://doc.powerdns.com/dstore/latest/configuration/dstore-dist Example of configuring a Kafka destination with basic parameters like addresses and topic. ```yaml destinations: mydestination: type: kafka kafka: addresses: - kafka.endpoint.local:9092 topic: mytopic ``` -------------------------------- ### Install Glass Instrumentation for quickstart-1 Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart Deploys Glass Instrumentation agents to the 'quickstart-1' namespace. Ensure 'registry-credentials' are available in the namespace. ```bash helm install glass-instrumentation-1 \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace "quickstart-1" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-instrumentation/examples/quickstart-1.yaml" ``` -------------------------------- ### Example IPSet File Content Source: https://doc.powerdns.com/dstore/latest/configuration/dstore-dist An example of an IPSet file format. It supports newline-separated IP prefixes (IPv4 or IPv6) and comments starting with '#'. ```plaintext 127.0.0.1/16 128.243.0.0/16 # Comments beginning with # are allowed fe80::1cc0:3e8c:119f:c2e1/18 ``` -------------------------------- ### Install Glass Instrumentation for quickstart-2 Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart Deploys Glass Instrumentation agents to the 'quickstart-2' namespace. Ensure 'registry-credentials' are available in the namespace. ```bash helm install glass-instrumentation-2 \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace "quickstart-2" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-instrumentation/examples/quickstart-2.yaml" ``` -------------------------------- ### GET /metrics Example Source: https://doc.powerdns.com/authoritative/http-api/index.html This snippet shows an example response from the `/metrics` endpoint. It lists various operational metrics in the Prometheus exposition format. ```http HTTP/1.1 200 OK Connection: close Content-Length: 12044 Content-Type: text/plain Server: PowerDNS/0.0.19015.0.master.ge719aae4e8 # HELP pdns_auth_corrupt_packets Number of corrupt packets received # TYPE pdns_auth_corrupt_packets counter pdns_auth_corrupt_packets 0 # HELP pdns_auth_deferred_cache_inserts Amount of cache inserts that were deferred because of maintenance # TYPE pdns_auth_deferred_cache_inserts counter pdns_auth_deferred_cache_inserts 0 # HELP pdns_auth_deferred_cache_lookup Amount of cache lookups that were deferred because of maintenance # TYPE pdns_auth_deferred_cache_lookup counter pdns_auth_deferred_cache_lookup 0 # HELP pdns_auth_deferred_packetcache_inserts Amount of packet cache inserts that were deferred because of maintenance # TYPE pdns_auth_deferred_packetcache_inserts counter pdns_auth_deferred_packetcache_inserts 0 # HELP pdns_auth_deferred_packetcache_lookup Amount of packet cache lookups that were deferred because of maintenance # TYPE pdns_auth_deferred_packetcache_lookup counter pdns_auth_deferred_packetcache_lookup 0 # HELP pdns_auth_dnsupdate_answers DNS update packets successfully answered. # TYPE pdns_auth_dnsupdate_answers counter pdns_auth_dnsupdate_answers 0 # HELP pdns_auth_dnsupdate_changes DNS update changes to records in total. # TYPE pdns_auth_dnsupdate_changes counter pdns_auth_dnsupdate_changes 0 # HELP pdns_auth_dnsupdate_queries DNS update packets received. # TYPE pdns_auth_dnsupdate_queries counter pdns_auth_dnsupdate_queries 0 # HELP pdns_auth_dnsupdate_refused DNS update packets that are refused. # TYPE pdns_auth_dnsupdate_refused counter pdns_auth_dnsupdate_refused 0 # HELP pdns_auth_incoming_notifications NOTIFY packets received. # TYPE pdns_auth_incoming_notifications counter pdns_auth_incoming_notifications 0 # HELP pdns_auth_overload_drops Queries dropped because backends overloaded # TYPE pdns_auth_overload_drops counter pdns_auth_overload_drops 0 # HELP pdns_auth_packetcache_hit Number of hits on the packet cache # TYPE pdns_auth_packetcache_hit counter pdns_auth_packetcache_hit 0 # HELP pdns_auth_packetcache_miss Number of misses on the packet cache # TYPE pdns_auth_packetcache_miss counter pdns_auth_packetcache_miss 0 # HELP pdns_auth_packetcache_size Number of entries in the packet cache # TYPE pdns_auth_packetcache_size gauge pdns_auth_packetcache_size 0 # HELP pdns_auth_query_cache_hit Number of hits on the query cache # TYPE pdns_auth_query_cache_hit counter pdns_auth_query_cache_hit 0 # HELP pdns_auth_query_cache_miss Number of misses on the query cache # TYPE pdns_auth_query_cache_miss counter pdns_auth_query_cache_miss 0 # HELP pdns_auth_query_cache_size Number of entries in the query cache # TYPE pdns_auth_query_cache_size gauge pdns_auth_query_cache_size 0 # HELP pdns_auth_rd_queries Number of recursion desired questions # TYPE pdns_auth_rd_queries counter pdns_auth_rd_queries 0 # HELP pdns_auth_recursing_answers Number of recursive answers sent out # TYPE pdns_auth_recursing_answers counter pdns_auth_recursing_answers 0 # HELP pdns_auth_recursing_questions Number of questions sent to recursor # TYPE pdns_auth_recursing_questions counter pdns_auth_recursing_questions 0 # HELP pdns_auth_recursion_unanswered Number of packets unanswered by configured recursor # TYPE pdns_auth_recursion_unanswered counter pdns_auth_recursion_unanswered 0 # HELP pdns_auth_security_status Security status based on regular polling # TYPE pdns_auth_security_status gauge pdns_auth_security_status 0 # HELP pdns_auth_servfail_packets Number of times a server-failed packet was sent out # TYPE pdns_auth_servfail_packets counter pdns_auth_servfail_packets 0 # HELP pdns_auth_signatures Number of DNSSEC signatures made # TYPE pdns_auth_signatures counter pdns_auth_signatures 0 # HELP pdns_auth_tcp_answers Number of answers sent out over TCP # TYPE pdns_auth_tcp_answers counter pdns_auth_tcp_answers 0 # HELP pdns_auth_tcp_answers_bytes Total size of answers sent out over TCP # TYPE pdns_auth_tcp_answers_bytes counter pdns_auth_tcp_answers_bytes 0 # HELP pdns_auth_tcp_queries Number of TCP queries received # TYPE pdns_auth_tcp_queries counter pdns_auth_tcp_queries 0 # HELP pdns_auth_tcp4_answers Number of IPv4 answers sent out over TCP # TYPE pdns_auth_tcp4_answers counter pdns_auth_tcp4_answers 0 # HELP pdns_auth_tcp4_answers_bytes Total size of answers sent out over TCPv4 # TYPE pdns_auth_tcp4_answers_bytes counter pdns_auth_tcp4_answers_bytes 0 # HELP pdns_auth_tcp4_queries Number of IPv4 TCP queries received # TYPE pdns_auth_tcp4_queries counter ``` -------------------------------- ### Install Glass Instrumentation for quickstart-3 Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart Deploys Glass Instrumentation agents to the 'quickstart-3' namespace. Ensure 'registry-credentials' are available in the namespace. ```bash helm install glass-instrumentation-3 \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace "quickstart-3" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-instrumentation/examples/quickstart-3.yaml" ``` -------------------------------- ### Registry Authentication Example Source: https://doc.powerdns.com/spog/latest/examples/team-based-deployment/index.html Set up registry credentials and log in to the OCI registry. ```bash 1 2 3 ``` -------------------------------- ### Install Glass Instrumentation for quickstart-1 Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart/index.html Installs the Glass Instrumentation agent for the quickstart-1 cluster. This command also sets cluster labels for identity and organizational role. ```bash helm install glass-instrumentation-1 \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace "quickstart-1" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-instrumentation/examples/quickstart-1.yaml" ``` -------------------------------- ### Install Local CA with mkcert Source: https://doc.powerdns.com/spog/latest/examples/oauth-ldap-setup/index.html Installs a local Certificate Authority (CA) and adds it to the system's trust store. This is a one-time setup step. ```bash mkcert -install ``` -------------------------------- ### Example ixfrdist.yml Configuration Source: https://doc.powerdns.com/authoritative/manpages/ixfrdist.yml.5.html A sample configuration file demonstrating how to define listeners, ACLs, and domain-specific master settings. ```yaml listen: - 192.0.2.2 - '[2001:DB8:ABCD::2]:5300' - 127.0.0.1 acl: - 127.0.0.1 - '192.0.2.0/24' - '2001:DB8:ABCD:1234::/64' work-dir: /var/lib/ixfrdist uid: ixfrdist gid: ixfrdist domains: - domain: example.com master: 192.0.2.18:5301 max-soa-refresh: 1800 notify: - 192.0.3.1 - 192.0.3.2:5301 - domain: example.net master: 2001:DB8:ABCD::2 ``` -------------------------------- ### Start Transaction HTTP/RPC Example Source: https://doc.powerdns.com/authoritative/backends/remote.html Use this HTTP/RPC endpoint to start a new transaction. The domain ID and domain name are required, along with a transaction ID. ```http POST /dnsapi/starttransaction/1/example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 10 trxid=1234 ``` ```http HTTP/1.1 200 OK Content-Type: text/javascript; charset=utf-8 {"result":true} ``` -------------------------------- ### Example legacy configuration files Source: https://doc.powerdns.com/recursor/appendices/yamlconversion.html Sample content for old-style configuration files used in the conversion process. ```text dnssec=validate include-dir=recursor.d forward-zones = example=127.0.0.1:1024 forward-zones-file=fwzones.txt local-address=128.66.23.4:5353, [::1]:53 ``` ```text forward-zones += example.com=128.66.9.99 forward-zones += example.net=128.66.9.100;128.66.9.101 local-address = 0.0.0.0 ``` ```text ^+example.org=127.0.0.1:1024 ``` -------------------------------- ### Helm Install Glass UI with NATS Configuration Source: https://doc.powerdns.com/spog/latest/examples/team-based-deployment/index.html Installs the Glass UI with a specific NATS server URL, along with team-based configuration files. Useful for custom NATS setups. ```bash helm install glass-ui \ oci://registry.open-xchange.com/cc-glass/glass-ui \ --version "1.0.0" \ --namespace controlplane \ --set global.imagePullSecretsList[0]=registry-credentials \ --set "ui.config.nats.serverUrl=ws://localhost:8222" \ -f team-based-dashboard.yaml \ -f team-based-navigation.yaml \ -f team-based-rego.yaml ``` -------------------------------- ### Install Controlplane with Values File Source: https://doc.powerdns.com/cloudcontrol/latest/controlplane Install the Controlplane Helm chart, providing custom configurations via a YAML values file. This allows for detailed component setup and parameter tuning. ```bash helm install --namespace= oci://registry.open-xchange.com/cloudcontrol/controlplane --version --values=myenvironment.yaml ``` -------------------------------- ### Example IP Set ConfigMap Data Source: https://doc.powerdns.com/cloudcontrol/latest/controlplane/reporting/dstoredist/index.html This ConfigMap contains IP prefixes in `ipset.dat`. Comments starting with '#' are allowed. ```yaml apiVersion: v1 kind: ConfigMap metadata: name: my-config-map data: ipset.dat: | 127.0.0.1/16 128.243.0.0/16 # Comments beginning with # are allowed fe80::1cc0:3e8c:119f:c2e1/18 ``` -------------------------------- ### Initiate Domain Listing Source: https://doc.powerdns.com/authoritative/appendices/backend-writers-guide.html Starts a list operation for a domain, making records available via the get() method. ```cpp bool DNSBackend::list(domainid_t domain_id, bool include_disabled = false) ``` -------------------------------- ### Install Glass Instrumentation for quickstart-2 Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart/index.html Installs the Glass Instrumentation agent for the quickstart-2 cluster. This command also sets cluster labels for identity and organizational role. ```bash helm install glass-instrumentation-2 \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace "quickstart-2" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-instrumentation/examples/quickstart-2.yaml" ``` -------------------------------- ### Install Glass Instrumentation for quickstart-3 Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart/index.html Installs the Glass Instrumentation agent for the quickstart-3 cluster. This command also sets cluster labels for identity and organizational role. ```bash helm install glass-instrumentation-3 \ oci://registry.open-xchange.com/cc-glass/glass-instrumentation \ --version "1.0.0" \ --namespace "quickstart-3" \ --set global.imagePullSecretsList[0]=registry-credentials \ -f "https://doc.powerdns.com/spog/1.0.0/helm/glass-instrumentation/examples/quickstart-3.yaml" ``` -------------------------------- ### Start Transaction JSON/RPC Example Source: https://doc.powerdns.com/authoritative/backends/remote.html This JSON/RPC method initiates a new transaction. A transaction ID is generated and can be used to group subsequent operations. ```json {"method":"startTransaction","parameters":{"trxid":1234,"domain_id":1,"domain":"example.com"}} ``` ```json {"result":true} ``` -------------------------------- ### Basic Navigation Configuration Example Source: https://doc.powerdns.com/spog/latest/concepts/navigation A template demonstrating the full structure of a navigation configuration file. ```yaml # Documentation Example: Basic Navigation Structure # # Referenced in: docs/docs/concepts/navigation.md # Section: Configuration Structure - Basic Example # ``` -------------------------------- ### Example ProtobufServer Configuration Source: https://doc.powerdns.com/recursor/yamlsettings.html An example of configuring protobuf servers in YAML. Demonstrates settings for two different servers with varying logging and export type configurations. ```yaml logging: protobuf_servers: - servers: [127.0.0.1:4578] exportTypes: [A, AAAA] - servers: ['[2001:DB8::1]':7891] logQueries: false logResponses: true exportTypes: [A] ``` -------------------------------- ### Retrieve Zone Request Source: https://doc.powerdns.com/authoritative/http-api/zone.html Example HTTP GET request to retrieve a specific zone managed by a server. Query parameters can be used to filter the response. ```http GET /servers/{server_id}/zones/{zone_id} HTTP/1.1 Host: example.com ``` -------------------------------- ### DoT Listener Configuration Source: https://doc.powerdns.com/cloudcontrol/latest/userplane/loadbalancing/dnsdist Configure DoT listeners as a list on the 'dot' parameter of a dnsdist configuration. This example shows basic setup with a LoadBalancer service. ```APIDOC ## DoT Listener Configuration ### Description Configure DoT listeners as a list on the `dot` parameter of a dnsdist configuration. This example shows basic setup with a LoadBalancer service. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```yaml dnsdists: mydnsdist: dot: - name: mydot service: type: LoadBalancer ``` ### Response #### Success Response (200) None explicitly defined for configuration. #### Response Example None ``` -------------------------------- ### DoT Listener Configuration Source: https://doc.powerdns.com/cloudcontrol/latest/userplane/loadbalancing/dnsdist/index.html Configure DoT listeners as a list on the 'dot' parameter of a dnsdist configuration. This example shows basic setup with a LoadBalancer service. ```APIDOC ## DoT Listener Configuration ### Description Configure DoT listeners as a list on the `dot` parameter of a dnsdist configuration. This example shows basic setup with a LoadBalancer service. ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example ```yaml dnsdists: mydnsdist: dot: - name: mydot service: type: LoadBalancer ``` ### Response #### Success Response (200) None #### Response Example None ``` -------------------------------- ### Start Port-Forwarding for Glass UI and NATS Source: https://doc.powerdns.com/spog/latest/getting-started/quickstart Use these commands to forward ports for accessing the Glass UI and NATS WebSocket. Ensure you have kubectl installed and configured. ```bash kubectl port-forward svc/glass-ui 8080:80 -n controlplane & kubectl port-forward svc/glass-nats 8222:8080 -n controlplane & ``` -------------------------------- ### Forward Zone Configuration Example Source: https://doc.powerdns.com/recursor/settings.html Specifies a zone and its associated IP addresses for forwarding DNS queries. Lines starting with '+' are treated as recursive forwards. ```text example.org=203.0.113.210, 192.0.2.4:5300 ``` -------------------------------- ### RPZ Example Configuration Source: https://doc.powerdns.com/recursor/yamlsettings.html Provides an example of how to configure RPZ entries, specifying file paths or remote zones with optional policy names. ```yaml recursor: rpzs: - name: 'path/to/a/file' - name: 'remote.rpz' addresses: ['192.168.178.99'] policyName: mypolicy ``` -------------------------------- ### Configure Kafka Destination Source: https://doc.powerdns.com/cloudcontrol/latest/controlplane/reporting/dstoredist Configure Kafka destinations by nesting parameters under a 'kafka:' attribute. This example shows basic Kafka setup with addresses and topic. Advanced options like compression, batching, and TLS are available. ```yaml dstoredists: mydstoredist: destinations: mydestination: type: kafka kafka: addresses: - some.kafka.endpoint:9092 topic: mytopic ``` -------------------------------- ### Configure OpenTelemetry Trace Conditions Source: https://doc.powerdns.com/recursor/performance.html Example configuration for enabling OpenTelemetry tracing with specific conditions. This setup traces queries from 127.0.0.1 and ::1 without further subconditions, and also traces specific queries from 192.168.178.0/24 based on qname, qtype, qid, and EDNS requirements. ```yaml recursor: event_trace_enabled: 4 logging: protobuf_servers: - servers: [127.0.0.1:9999] opentelemetry_trace_conditions: - acls: [127.0.0.1, '::1'] - acls: [192.168.178.0/24] qnames: [a.very.specific.suffix] qtypes: ['A', 'AAAA'] qid: 1234 edns_option_required: true ``` -------------------------------- ### Minimal dstoredist configuration Source: https://doc.powerdns.com/cloudcontrol/latest/controlplane/reporting/dstoredist Example showing the required hierarchy for destinations and routes within an instance set. ```yaml dstoredists: mydstoredist: < dstoredist configuration > destinations: mydestination: < destination configuration > routes: myroute: destinations: - mydestination < route configuration > ``` -------------------------------- ### AllowedAdditionalQTypes Example Configuration Source: https://doc.powerdns.com/recursor/yamlsettings.html Shows an example of configuring allowed additional query types, including their targets and resolution modes. ```yaml recursor: allowed_additional_qtypes: - qtype: MX targets: [A, AAAA] - qtype: NAPTR targets: [A, AAAA, SRV] mode: ResolveDeferred ``` -------------------------------- ### Install cert-manager Helm Chart Source: https://doc.powerdns.com/spog/latest/examples/oauth-ldap-setup/index.html Installs cert-manager using Helm, a Kubernetes add-on for managing TLS certificates. Ensure Helm is installed and repositories are updated. ```bash helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true ``` -------------------------------- ### HTTP Backend Configuration Example Source: https://doc.powerdns.com/dstore/latest/configuration/dstore-dist-top-reporter/index.html Example configuration for the HTTP backend, demonstrating how to set the URL, method, headers, and a custom wrapper template for sending data to an HTTP endpoint like Splunk. ```yaml backend: http name: splunk url: "http://example.com/splunk" method: POST headers: authorization: "Splunk 12345" wrapper_template: > {"host":"example.com","source":"dstore-dist-top-reporter","index":"pdns-dstore-dist-top-reporter","sourcetype":"{{.ReportName}}","event":{{.ReportEvent}}} ``` -------------------------------- ### Start Transaction Source: https://doc.powerdns.com/authoritative/backends/remote.html Starts a new transaction. A transaction ID is chosen automatically. ```APIDOC ## POST /dnsapi/starttransaction/{domain_id}/{domain} ### Description Starts a new transaction. Transaction ID is chosen for you. Used to identify f.ex. AXFR transfer. ### Method POST ### Endpoint /dnsapi/starttransaction/{domain_id}/{domain} ### Parameters #### Path Parameters - **domain_id** (integer) - Required - The ID of the domain. - **domain** (string) - Required - The domain name. #### Request Body - **trxid** (integer) - Required - The transaction ID. ### Request Example ```http POST /dnsapi/starttransaction/1/example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 10 trxid=1234 ``` ### Response #### Success Response (200) - **result** (boolean) - Indicates if the operation was successful. #### Response Example ```json { "result": true } ``` ``` -------------------------------- ### Basic Navigation Example Source: https://doc.powerdns.com/spog/latest/concepts/navigation/index.html An example demonstrating a basic navigation structure with menus, sections, and items, including internal links and permission requirements. ```yaml # Documentation Example: Basic Navigation Structure # # Referenced in: docs/docs/concepts/navigation.md # Section: Configuration Structure - Basic Example # ``` -------------------------------- ### ProxyMapping Example Configuration Source: https://doc.powerdns.com/recursor/yamlsettings.html Provides an example of configuring proxy mappings, specifying subnets, target IP addresses, and optional domain lists. ```yaml incoming: proxymappings: - subnet: 192.168.178.0/24 address: 128.66.1.2 - subnet: 192.168.179.0/24 address: 128.66.1.3 domains: - example.com - example.net ``` -------------------------------- ### Configure dstore-dist-top-reporter with YAML Source: https://doc.powerdns.com/dstore/latest/configuration/dstore-dist-top-reporter/index.html A complete configuration example defining HTTP settings, input streams, report generation rules, storage backends, and security filters. ```yaml http: address: ":8701" streams: - name: all-queries title: "All traffic (sampled)" address: ":4801" # This needs to match the sample value configured in dstore-dist upstream_sampling: 1000 # Reports are generated from streams. reports: - name: all-tldplusone-domains # This uses the public domain suffix list to remove internal subdomains # e.g. www.example.com and mail.example.com will both be truncated to example.com field: qname/suffix+1 # We always want to oversample, otherwise the summary data will be skewed n: 5000 stream: all-queries interval: 60s storage: - name: elasticsearch # This is currently the only supported backend backend: elastic skip_empty: true url: http://elasticsearch:9200/ # Ensure the index contains the report name and today's date elastic_index_template: "{{.ReportName}}-{{.TimestampDate}}" # Optional security section for configuring security fields from tags/rules/categories security: malicious: rule: - rule1 blocked: tag: - tag1 regulatory: rule: ["rule2"] ``` -------------------------------- ### Install Zalando Postgres Operator Source: https://doc.powerdns.com/spog/latest/examples/oauth-ldap-setup/index.html Installs the Zalando Postgres Operator using Helm. ```bash helm repo add postgres-operator-charts https://opensource.zalando.com/postgres-operator/charts/postgres-operator helm repo update helm install postgres-operator postgres-operator-charts/postgres-operator \ --namespace postgres-operator \ --create-namespace ``` -------------------------------- ### Install cert-manager via Helm Source: https://doc.powerdns.com/spog/latest/examples/oauth-ldap-setup Adds the Jetstack repository and installs cert-manager into the cluster. ```bash helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true ``` -------------------------------- ### Configure IXFRDist domains with options Source: https://doc.powerdns.com/cloudcontrol/latest/userplane/authoritative/auth Example of configuring specific domains with additional parameters like max-soa-refresh. ```yaml auths: myixfrauth: ixfrdist: enabled: true domains: - domain: "zone1.ixfrdist.local" max-soa-refresh: 3600 - domain: "zone3.ixfrdist.local" ```