DNS
This check performs queries to a DNS server to obtain the required information.
apiVersion: canaries.flanksource.com/v1
kind: Canary
metadata:
  name: dns-check
spec:
  interval: 30
  dns:
    - name: A record query
      server: 8.8.8.8
      port: 53
      query: "1.2.3.4.nip.io"
      querytype: "A"
      minrecords: 1
      exactreply: ["1.2.3.4"]
      timeout: 10
      thresholdMillis: 1000
    - name: PTR query
      server: 8.8.8.8
      port: 53
      query: "8.8.8.8"
      querytype: "PTR"
      minrecords: 1
      exactreply: ["dns.google."]
      timeout: 10
      thresholdMillis: 100
    - name: cname query
      server: 8.8.8.8
      port: 53
      query: "dns.google"
      querytype: "CNAME"
      minrecords: 1
      exactreply: ["dns.google."]
      timeout: 10
      thresholdMillis: 1000
    - name: mx query
      server: 8.8.8.8
      port: 53
      query: "flanksource.com"
      querytype: "MX"
      minrecords: 1
      exactreply:
        - "aspmx.l.google.com. 1"
        - "alt1.aspmx.l.google.com. 5"
        - "alt2.aspmx.l.google.com. 5"
        - "aspmx3.googlemail.com. 10"
        - "aspmx2.googlemail.com. 10"
      timeout: 10
      thresholdMillis: 1000
    - server: 8.8.8.8
      port: 53
      query: "flanksource.com"
      querytype: "TXT"
      minrecords: 1
      exactreply: ["google-site-verification=IIE1aJuvqseLUKSXSIhu2O2lgdU_d8csfJjjIQVc-q0"]
      timeout: 10
      thresholdMillis: 1000
    - server: 8.8.8.8
      port: 53
      query: "flanksource.com"
      querytype: "NS"
      minrecords: 1
      exactreply:
        - "ns-91.awsdns-11.com."
        - "ns-908.awsdns-49.net."
        - "ns-1450.awsdns-53.org."
        - "ns-1896.awsdns-45.co.uk."
      timeout: 10
      thresholdMillis: 1000
  #  - server: 8.8.8.8
  #    port: 53
  #    querytype: "SRV"
  #    query: "_test._tcp.test"
  #    timeout: 10
  #    srvReply:
  #      target: ""
  #      port: 0
  #      priority: 0
  #      weight: 0*
| Field | Description | Scheme | Required | 
|---|---|---|---|
description | 
Description for the check | string | |
exactreply | 
Expected exact match result(s) | []string | |
server | 
Address of DNS server to query | string | Yes | 
icon | 
Icon for overwriting default icon on the dashboard | string | |
minrecords | 
Minimum records | int | |
name | 
Name of the check | string | |
port | 
Port to query DNS server on | int | Yes | 
query | 
Domain name to lookup | string | |
querytype | 
Record type to query | string | Yes | 
thresholdMillis | 
Threshold response time from DNS server | int | Yes | 
timeout | 
Maximum timeout for DNS query | int | Yes |