Commit Graph

600 Commits

Author SHA1 Message Date
Brian Cunnie
859107de14 🐞 Don't test resolution of Google's IPv6 DNS server twice
Instead, test one of my IPs.
2017-12-10 07:18:16 -08:00
Brian Cunnie
2642344d44 Test FQDNS -> IPv6 addresses 2017-12-10 06:27:58 -08:00
Brian Cunnie
accc3747de 🐞 No double parens; they confuse BOSH
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
```
2017-12-09 16:41:09 -08:00
Brian Cunnie
4d7cfb9bf7 sslip.io returns AAAA (IPv6) records
- 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.
2017-12-09 14:51:25 -08:00
Brian Cunnie
e5a113d4d4 Reduce flakiness by attempting 10 times
- 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)
```
2017-10-08 08:04:29 -07:00
Brian Cunnie
3844f98c28 Unit tests show which command is being run
- helps me troubleshoot; I get lost at times.
- README shows more verbose variant of rspec
2017-09-21 06:01:10 -07:00
Brian Cunnie
bf623eafaa Remove double-parentheses
- 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
```
2017-09-02 11:55:33 -07:00
Brian Cunnie
c315a1f257 Revert "Remove tabs that cause BOSH interpolation to fail"
- the problem wasn't the tabs; it was the double-parentheses ("((")
- besides, tabs are needed: https://doc.powerdns.com/md/authoritative/backend-pipe/

This reverts commit e1c998a7b9.
2017-09-02 11:47:53 -07:00
Brian Cunnie
e1c998a7b9 Remove tabs that cause BOSH interpolation to fail
- 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
```
2017-09-02 09:28:15 -07:00
Brian Cunnie
a549b5b74d Nameservers should be lowercased
fixes:
```
nameserver NS-AZURE.NONO.IO.'s NS records match whois's ["NS-AZURE.NONO.IO.", "NS-AWS.NONO.IO.", "NS-HE.NONO.IO.", "NS-GCE.NONO.IO."] (FAILED - 1)
```
2017-07-05 13:57:42 -07:00
Brian Cunnie
e779757527 Adjust to new whois format:
- 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)>'
```
2017-07-01 06:38:16 -07:00
Brian Cunnie
a882d0c315 Disable PowerDNS binding to IPv6
- temporary measure
- fixes
```
Fatal error: Unable to acquire TCPv6 socket: Address family not supported by protocol
```
2017-06-03 09:59:07 +08:00
Brian Cunnie
f4c93f3ed9 check for non-sslip.io domains
- fixed bug where SOA wasn't checked properly
- put comment on top so I can run tests locally more easily
2016-10-23 11:35:15 -07:00
Brian Cunnie
814fe0af59 QTYPE 'ANY' is handled properly
- I didn't think 'ANY' was important. It was not only
  important, it was crucial.
2016-10-23 08:59:23 -07:00
Brian Cunnie
d85ef220f0 sslip.io will work for any domain 2016-10-22 20:14:43 -07:00
Brian Cunnie
cf5418c1b6 Bump SOA (I had forgotten) 2016-10-22 11:57:40 -07:00
Brian Cunnie
667c2b5816 Removed pdns_pipe_conf stanza
- we are co-mingling configuration with code; truth be told
  they were never very separate anyway
2016-10-22 11:34:23 -07:00
Brian Cunnie
109b9da8f5 Update nameservers; remove MX records 2016-10-22 10:54:27 -07:00
Brian Cunnie
d2af698285 ns-azure is live; remove ns-he (not auto-deployed) 2016-10-18 13:30:54 -07:00
Brian Cunnie
7a7b8464e2 RSpec check-dns_spec.rb has replaced check-dns.rb 2016-09-10 17:13:30 -07:00
Brian Cunnie
8597afdc06 Tests a more complex and random hostname 2016-09-09 13:29:29 -07:00
Brian Cunnie
9e1bcb2c6a Check DNS changes 4x/day; expose job output to public
- I like public output because it reassures users
  that we're really, truly testing
2016-09-09 07:31:04 -07:00
Brian Cunnie
d80ce16748 Test core fucntion of sslip.io
- w-x-y-z.sslip.io resolves to w.x.y.z
2016-09-09 06:27:41 -07:00
Brian Cunnie
c88307e497 Merge pull request #4 from laukstein/patch-1
Syntax error, must be SSLCertificateKeyFile
2016-09-05 18:41:51 -07:00
Brian Cunnie
dc4cf0bf5c PowerDNS's pipe backend's configuration is included
- also include instructions to run tests
2016-09-05 06:57:28 -07:00
Brian Cunnie
daf5c91ee0 RSpec is invoked with correct path to spec/
fixes:
```
No examples found.
```
2016-09-05 05:46:46 -07:00
Brian Cunnie
8bcce4784b hash-bang has one option, concatenated
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 ...
```
2016-09-05 05:27:08 -07:00
Brian Cunnie
5c5d7ae5ec use RSpec, not a custom bash script
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'.
2016-09-05 05:16:51 -07:00
Brian Cunnie
99efc514a8 Docker container has rspec
- switching to rspec to run tests -- good practice
2016-09-04 10:58:53 -07:00
Brian Cunnie
ae765ae476 fix trailing '.' whois <-> dig dichotomy
- whois records don't have trailing '.'; NS records do. Add trailing '.'
2016-09-04 06:25:45 -07:00
Brian Cunnie
819c2604dc Query proper NS; Exit Code == # failures 2016-09-03 05:57:14 -07:00
Brian Cunnie
45d0e58679 Don't blindly succeed even when you fail
- must use a non-zero exit code to signify failure to Concourse
2016-09-02 13:07:42 -07:00
Brian Cunnie
6cb6eaa17f Check that whois matches dig 2016-09-02 08:03:44 -07:00
Brian Cunnie
24aee3e7b2 Oops -- I forgot I needed whois 2016-09-01 12:47:48 -07:00
Brian Cunnie
0794d967d6 DNS checks are run in Fedora container with ruby
- includes bind-utils (dig, nslookup, whois)
2016-09-01 12:39:30 -07:00
Brian Cunnie
22e048d5bc Dockerfile for image that contains needed programs
- ruby & nslookup & dig
2016-09-01 07:55:06 -07:00
Brian Cunnie
50ade4d699 Docker image Ruby -> Fedora/Ruby 2016-08-31 20:43:33 -07:00
Brian Cunnie
5cd74fe56e check-dns.rb has 2 checks, better than none. 2016-08-31 20:39:54 -07:00
Brian Cunnie
1c87736d42 Comment/reminder to expose Concourse pipeline-simple 2016-08-31 19:16:30 -07:00
Brian Cunnie
e212d71056 Farewell, Fedora, and HELLO RUBY
Use ruby image to run check-dns script
2016-08-29 13:21:45 -07:00
Brian Cunnie
1df0dd7b90 Pipelines have better instructions
...in comments, at the top of the YAML files.
2016-08-29 13:15:53 -07:00
Brian Cunnie
ba4d87c8d4 check-dns will be a ruby script...
...and it will be perfect in every way. --Immortan Joe
2016-08-29 13:08:11 -07:00
Brian Cunnie
276311f219 Simple pipeline highlights conundrum:
- "which job reflects the health of the code?"
2016-08-28 06:20:49 -07:00
Brian Cunnie
e89d79cb7c Comments describe the status of the various jobs. 2016-08-27 20:11:22 -07:00
Brian Cunnie
998be13369 Pipeline that displays the five possible badges 2016-08-26 21:21:01 -07:00
Brian Cunnie
c83e929033 README has a badge! And an explanation. 2016-08-25 07:09:49 -07:00
Brian Cunnie
05dac6df49 sslip.io has Concourse's Continuous Integration
- CI-related files are under `ci/`
2016-08-24 20:43:10 -07:00
Brian Cunnie
4b8f1e0577 Revoked SSL certificates is under revoked_ssl directory 2016-08-24 19:53:47 -07:00
Binyamin Laukstein
e26fb8808e Syntax error, must be SSLCertificateKeyFile
> 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
2016-01-31 21:36:48 +02:00
Brian Cunnie
aac7b35fea Better wording. 2015-09-18 13:06:45 -07:00