Commit Graph

659 Commits

Author SHA1 Message Date
Brian Cunnie
964fad99d3 Delete index.md; it's not the true source
I wasted an hour trying to figure out how I converted `index.md` to
`index.html` (`pandoc`? `hugo`?), only to discover that it was never the
true source, I had merely converted then cut-and-pasted to the
hand-curated `index.html`.
2018-05-21 05:50:34 -07:00
Brian Cunnie
03485ad955 Pipelines: unpause from the CLI 2018-03-17 04:35:47 -07:00
Brian Cunnie
ebc13e99f6 Pipelines use new syntax for Docker images
Also modified simple so that _unit_ would pass and _integration_ would
fail. If swapped, then _unit_ would fail and _integration_ would never
run.

fixes:
```
error: invalid configuration:
unknown/extra keys:
  - jobs[0].plan[0].config.image
  - jobs[0].plan[0].config.tags
```
2018-03-08 20:44:08 -08:00
Brian Cunnie
f15db8f932 Root A and AAAA records return properly for mixed-case queries
When queried with a mixed-case domain, e.g. "SsLiP.Io", the A and AAAA
records are properly returned. Previously they weren't. This is a
problem when Let's Encrypt queries with a mixed-case domain, which it
does for reasons which are not clear:

  <https://github.com/letsencrypt/boulder/issues/1243>

fixes:
```
Failed authorization procedure. sslip.io (http-01): urn:acme:error:unknownHost :: The server could not resolve a domain name :: No valid IP addresses found for sslip.io
```
2018-03-04 12:11:36 -08:00
Brian Cunnie
47992ce311 ns-he.nono.io has IPv6 address, too 2018-03-04 08:33:31 -08:00
Brian Cunnie
fa3997f850 Hetzner will host sslip.io
- cert is from LetsEncrypt
- Hetzner already "owns" the IPv6 version
- For simplicity, it should also own IPv4

This marks a milestone in the sslip.io; its original purpose was to use
a wildcard certificate, and now we're hosting the domain using a
LetsEncrypt certificate. My, how the world has changed.
2018-03-01 19:46:57 -08:00
Brian Cunnie
3c50a3181a Placate https://validator.w3.org
fixes:
```
The name attribute is obsolete. Consider putting an id attribute on the nearest container instead.
```
2018-03-01 17:49:18 -08:00
Brian Cunnie
2961708fa7 tidy -im -w 120 index.html 2018-03-01 17:37:30 -08:00
Brian Cunnie
84d55750dc sslip.io web page has new message
- Like xip.io, except
  - allow dashes as well as dots
  - allow IPv6
  - allow branding
  - allow wildcard TLS

We deprecate the old message, which was about using SSL.
2018-02-28 20:17:51 -08:00
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