Instead, we use a filler "x{0}", i.e. "'x' appearing exactly
zero times" to separate the parentheses.
fixes:
```
Task 21945 | 00:31:48 | Error: Unable to render instance groups for deployment. Errors are:
- Unable to render jobs for instance group 'concourse'. Errors are:
- Unable to render templates for job 'pdns'. Errors are:
Variable name '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?' must only contain alphanumeric, underscores, dashes, or forward slash characters
```
- api.system.2a01-4f8-c17-b8f--2.sslip.io ➡ 2a01:4f8:c17:b8f::2
- `dashed` domains only (e.g. only "fe80-2a01-4f8-c17--de0e" not
"fe80.2a01.4f8.c17..de0e"; DNS doesn't allow two dots next to each
other.
- mirrored from https://github.com/cunnie/bin/blob/master/pdns_pipe.sh
which has colocated tests.
- DNS is flaky, and sometimes tests fail for spurious reasons
(e.g. <https://ci.nono.io/teams/main/pipelines/sslip.io/jobs/check-dns/builds/1621>)
fixes
```
dig: couldn't get address for 'ns-he.nono.io.': not found
nameserver ns-he.nono.io.'s NS records match whois's ["ns-azure.nono.io.", "ns-aws.nono.io.", "ns-he.nono.io.", "ns-gce.nono.io."], `dig +short ns sslip.io @ns-he.nono.io.` (FAILED - 1)
```
- causes BOSH interpolation to become confused
- separate parentheses using null-string "x{0}"
fixes:
```
Task 19122 | 15:47:01 | Error: Unable to render instance groups for deployment. Errors are:
- Unable to render jobs for instance group 'concourse'. Errors are:
- Unable to render templates for job 'pdns'. Errors are:
Variable name '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?' must only contain alphanumeric, underscores, dashes, or forward slash characters
```
- improperly templated with tabs:
```yaml
pipe: "#!/usr/bin/env bash\n#\n# Originally written by Sam Stephenson for xip.io\nset
-e\nshopt -s nocasematch\n\n# Configuration\n#\n# Increment this timestamp
```
- properly templated without:
```yaml
pipe: |
#!/usr/bin/env bash
#
# Originally written by Sam Stephenson for xip.io
```
fixes:
```
Task 19122 | 15:47:01 | Error: Unable to render instance groups for deployment. Errors are:
- Unable to render jobs for instance group 'concourse'. Errors are:
- Unable to render templates for job 'pdns'. Errors are:
Variable name '(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?' must only contain alphanumeric, underscores, dashes, or forward slash characters
```
- previously Name Server line began with "NS"
- now they begin with "Name Server"
- fixed typo
fixes:
```
1) sslip.io should have at least 2 nameservers
Failure/Error: expect(whois_nameservers.size).to be > 1
expected: > 1
got: 0
# ./sslip.io/spec/check-dns_spec.rb:37:in `block (2 levels) in <top (required)>'
```
Works fine on macOS; blows up on Linux.
fixes:
```
/bin/bash: - : invalid option
Usage: /bin/bash [GNU long option] [option] ...
/bin/bash [GNU long option] [option] script-file ...
```
Admittedly it's overkill to use RSpec to run a set of assertions against
a DNS server -- a simple shell script would have been shorter and more
understandable. We are using RSpec merely to practice using RSpec.
Also, RSpec is not quite appropriate because we're not testing a Ruby
class. In fact, we're not test Ruby code at all. So we should not be
using RSpec. Just sayin'.
> AH00526: Syntax error on line 166 of httpd-ssl.conf:
> Invalid command 'SLCertificateKeyFile', perhaps misspelled or defined by a module not included in the server configuration