AgentSkillsCN

run-dns-server

指导如何在本地运行容器化DNS服务器。当用户需要执行验收测试,或希望以“TestAcc”为前缀进行测试时,这一技能将为你提供实用建议。

SKILL.md
--- frontmatter
name: run-dns-server
description: Guide for running a local containerized DNS server. Use this when asked to run an acceptance test or to run a test with the prefix `TestAcc`.

Before running any acceptance tests for the DNS provider, start a DNS server:

  1. Check whether the DNS server is already alive by querying its locally-mapped port:

    code
    dig @127.0.0.1 -p 15353 +short ns.example.com
    

    Expected command output is "127.0.0.1."

  2. If the DNS server is not already alive, then start the DNS server by running this command in the background:

    code
    docker run --privileged --cgroupns=host -d --tmpfs /tmp --tmpfs /run \
     -v /sys/fs/cgroup:/sys/fs/cgroup:rw \
     -v /etc/localtime:/etc/localtime:ro \
     -v $PWD/internal/provider/testdata/named.conf.kerberos:/etc/named.conf:ro \
     -p 127.0.0.1:15353:53 \
     -p 127.0.0.1:15353:53/udp \
     --rm --name ns --hostname ns.example.com ns
    
  3. After starting the DNS server, verify that the DNS server is alive by querying its locally-mapped port:

    code
    dig @127.0.0.1 -p 15353 +short ns.example.com
    

    Expected command output is "127.0.0.1." Display no output unless there is a problem.

  4. If there is a problem, do not run the acceptance tests.

Add these environment variables to all go test commands for acceptance tests in the DNS provider:

  • DNS_UPDATE_SERVER=127.0.0.1
  • DNS_UPDATE_PORT=15353