Commit Graph

117 Commits

Author SHA1 Message Date
Jacob Hoffman-Andrews 71e4af43f7 Roll forward "Run Travis tests in Docker (#1830)" (#1838)
That change broke the certbot tests because it switched to a MariaDB
10.1-specific syntax. certbot/certbot#3058 changes the certbot tests to use
Boulder's docker-compose.yml, so they will get MariaDB 10.1 automatically.
2016-05-24 15:11:22 -07:00
Jacob Hoffman-Andrews fcbe7ad268 Clarify diagram with pointers. 2016-05-23 17:30:40 -07:00
Jacob Hoffman-Andrews b954dcc010 Revert "Run Travis tests in Docker (#1830)" (#1834)
This reverts commit 92d94f2 and commit 0b4623f to unbreak the Certbot build.
2016-05-20 15:57:10 -07:00
Jacob Hoffman-Andrews 92d94f2558 Run Travis tests in Docker (#1830)
* MariaDB 10.1

* MariaDB 10.1 in Docker

* Run docker stuff.

* Improve test.js error.

* Lower log level

* Revert dockerfile to master

* Export debug ports, set FAKE_DNS, and remove container_name.

* Remove typo.

* Make integration-test.py wait for debug ports.

* Use 10.1 and export more Boulder ports.

* Test updates for Docker

Listen on 0.0.0.0 for utility servers.
Make integration-test.py just wait for ports rather than calling startservers.
Run docker-compose in test.sh.
Remove bypass when database exists.
Separate mailer test into its own function in integration test.
Print better errors in test.js.

* Always bring up mysql container.

* Wait for MySQL to come up.

* Put it in travis-before-install.

* Use 127

* Remove manual docker-up.

* Add ifconfig

* Switch to docker-compose run

* It works!

* Remove some spurious env vars.

* Add bash

* try running it

* Add all deps.

* Pass through env.

* Install everything in the Dockerfile.

* Fix install of ruby

* More improvements

* Revert integration test to run directly
Also remove .git from dockerignore and add some packages.

* Revert integration-test.py to master.

* Stop ignoring test/js

* Start from boulder-tools.

* Add boulder-tools.

* Tweak travis.yml

* Separate out docker-compose pull as install.

* Build in install phase; don't bother with go install in Dockerfile

* Add virtualenv

* Actually build rabbitmq-setup

* Remove FAKE_DNS

* Trivial change

* Pull boulder-tools as a separate step so it gets its own timing info.

* Install certbot and protobuf from repos.

* Use cerbot from debian backports.

* Fix clone

* Remove CERTBOT_PATH

* Updates

* Go back to letsencrypt for build.sh

* Remove certbot volume.

* go back to preinstalled letsencrypt

* Restore ENV

* Remove BASH_ENV

* Adapt reloader test so it psses when run as root.

* Fixups for review.

* Revert test.js

* Revert startservers.py

* Revert Makefile.
2016-05-19 16:29:45 -07:00
Jacob Hoffman-Andrews 0ffd39d055 Update docs
Clarify diagram in README and correct a few things.
Fix a typo in DESIGN.
Remove docs/database, which has been superseded by test/sa_db_users.sql
2016-05-19 09:22:59 -07:00
Ben Irving a41b1dd091 Update README.md for running certbot_test client (#1795) 2016-05-08 12:28:18 -07:00
Jacob Hoffman-Andrews f2f3e37b48 Add line to README for GO15VENDOREXPERIMENT. (#1779) 2016-04-29 11:26:33 -07:00
Jacob Hoffman-Andrews 6d5348f975 Run go generate in Travis (#1762)
* Fix go generate command in metrics.

The previous command only worked on OS X. This one works on Linux but not
OS X.

Also add generate phase of test.sh.

* Add mockgen to test setup.

* Fix github-pr-status output.

* Fix envvar style.

* Set xtrace.

* Fix test.sh

* Fix test.sh some more.

* Fix mockgen command.

* Add dependencies for running `go generate`.

* Add protoc-gen-go.

* Fix go get command.

* Fix generate.

* Wait for all.

* Fix generate.

* Update generated pb.

* Fix generate commands for vendored world.

* Update documentation for new vendor style.

* Update grpc package to latest.

* Update caaChecker proto with latest.

* Run go generate only over TESTPATHS

* See if Travis passes under 1.6

* Switch back to 1.5.

* Trim run command.

* Run stringer from correct directory.

* Move generate command.

* Restore and generate

* Fix path.

* list contents of GOPATH.

* Fix stringer by prebuilding.

* Try another import path.

* regenerate bcode_string.

* remove excess package

* pull jsha fork of protoc-gen-go that echoes

* Echo protoc version.

* install from source

* CD back.

* Go back to normal protoc-gen-go

* Fix path

* Move protobuf install into test/setup.sh

* Move before_install to install.

* Set PATH.

* Follow 301 with curl.

* Shuffle test order.

* Swap back test order.

* Restore all tests.

* Restore 1.5.3 to Travis.

* Remove unnecessary wait-or-exit

* Generate metrics mock with latest mockgen.

* Wrap TESTPATHS in curlies

* Remove spurious bracket
2016-04-21 15:23:06 -07:00
Igor Bukanov 31455dc6fc expect client to use http://boulder/ for testing
https://github.com/letsencrypt/boulder/pull/1698

This followup for #1639 to use the boulder name, not 127.0.0.1, in subscriberAgreementURL in the test boulder instance.
2016-04-06 13:06:49 -07:00
Jacob Hoffman-Andrews d98eb634d1 Docker improvements.
Use bridged networking.

Add some files to .dockerignore to shrink the build state sent to Docker
daemon.

Use specific hostnames to contact services, rather than localhost.

Add instructions for adding those hostnames to /etc/hosts in non-Docker config.

Use DSN-style connect strings for DBs.

Remove localhost / 127.0.0.1 rewrite hack from create_db.sh.

Add hosts section with new hostnames.

Remove bin from .dockerignore.

SQL grants go to %

Short-circuit DB creation if already existing.

Make `go install` a part of Docker image build so that Docker run is much
faster.

Bind to 0.0.0.0 for OCSP responders so they can be reached from host, and
publish / expose their ports.

Remove ToSServerThread and test.js' fetch of ToS.

Increase the registrationsPerIP rate limit threshold. When issuing from a Docker
host, the 127.0.0.1 override doesn't apply, so the limit is quickly hit.

Update docker-compose for bridged networking. Note: docker-compose doesn't currently work, but should be close.

https://github.com/letsencrypt/boulder/pull/1639
2016-04-04 16:05:08 -07:00
Elliot Iddon 4c77865ea1 Update ACME spec URL in README. 2016-04-01 10:59:12 +01:00
Jacob Hoffman-Andrews 1f3a1ef532 Document git fsckObjects in README. 2016-02-26 11:09:43 -08:00
Jacob Hoffman-Andrews bc7131b9ea Minor improvements to the README. 2016-02-22 15:31:17 -08:00
Reinaldo de Souza Junior 8eefe395ac Go get works on packages, not on URLs
The previously mentioned command fails with

```
$ go get -u https://github.com/tools/godep
package https:/github.com/tools/godep: "https://" not allowed in import path
```
2015-12-22 17:21:14 -05:00
Jacob Hoffman-Andrews 33b8c357ef Split out setup.sh from travis-before-install.
This accomplishes two things:
 - setup.sh should now be usable by the client integration test.
 - setup.sh can be used by new project members to simplify first setup.

Update the README to indicate the new file, and to correct some out-of-date
information.
2015-11-30 23:44:45 -08:00
Jacob Hoffman-Andrews 9e4b0c1e5b Move RabbitMQ initialization into its own binary.
Previously our executables would all try to declare the boulder exchange on
startup, which may have been leading to some race conditions in Travis. Also,
the Activity Monitor would try to bind a queue to the exchange at startup.
In prod both of these tasks are taken care of administratively, so including
them in the app code was adding unnecessary complexity. It also may have been
part of an issue causing Activity Monitor to fail to start up recently.

Also, turn the Activity Monitor into an RPC service, which gets it reconnects
for free, and add it to startservers.py.
2015-11-29 16:55:03 -08:00
Damian Duesentrieb 6ab862836b Improve installation instructions 2015-11-20 00:43:37 +01:00
EKR 2e72c9d33d Editorial 2015-11-08 18:18:57 -08:00
EKR 7ed558c32a Update README 2015-11-08 18:17:24 -08:00
Jessica Frazelle a2632fa155
change run-docker.sh to use bash not docker-compose
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-11-02 09:50:25 -08:00
Jessica Frazelle 121a98f438
update run-docker.sh and readme
Signed-off-by: Jessica Frazelle <acidburn@docker.com>
2015-10-21 12:55:18 -07:00
Fabio Utzig 259b1b6d5a Typo fix 2015-10-04 10:34:24 -03:00
Andrew Hobden 8ac94092f9 Simple README improvements.
All cosmetic!
2015-09-14 15:48:19 -07:00
Jacob Hoffman-Andrews b77b08e0d8 Remove mention of MySQL support. 2015-09-10 16:39:26 -04:00
Jacob Hoffman-Andrews 19c68a01e0 Fix Docker setup.
Add an easy script to build and run the Docker instance.
Update some out-of-date information in the README.
Add goose to the Docker image.
Remove unnecessary go install step from Dockerfile.

Allow dns-test-srv to return a hardcoded address other than localhost. This was
preventing a Dockerized Boulder from answering requests from a letsencrypt
client on the host.

Change allowLoopbackAddresses to allowRestrictedAddresses and make it cover all
the private IPv4 ranges. The host IP in Docker is commonly in the 172.* range.

Fix a couple of references to lets-encrypt-preview.

This was inspired by investigation into https://github.com/letsencrypt/boulder/issues/756.
To try and reproduce, I tried running Boulder inside a container, and found some
broken things.
2015-09-08 23:31:04 -04:00
Jeff Hodges 7b6f2894f7 add goose as the migration tool
This has required some substantive changes to the tests. Where
previously the foreign key constraints did not exist in the tests, now
that we use the actual production schema, they do. This has mostly led
to having to create real Registrations in the sa, ca, and ra tests. Long
term, it would be nice to fake this out better instead of needing a real
sa in the ca and ra tests.

The "goose" being referred to is <https://bitbucket.org/liamstask/goose>.

Database migrations are stored in a _db directory inside the relevant
owner service (namely, ca/_db, and sa/_db, today).

An example of migrating up with goose:

    goose -path ./sa/_db -env test up

An example of creating a new migration with goose:

    goose -path ./sa/_db -env test create NameOfNewMigration sql

Notice the "sql" at the end. It would be easier for us to manage sql
migrations. I would like us to stick to only them. In case we do use Go
migrations in the future, the underscore at the beginning of "_db" will
at least prevent build errors when using "..." with goose-created Go
files. Goose-created Go migrations do not compile with the go tool but
only with goose.

Fixes #111
Unblocks #623
2015-08-25 12:02:31 -07:00
Jeff Hodges b08e6e0bad use MariaDB in integration tests and start.py
This changes moves from using SQLite in the integration tests and in the
test/boulder-config.json.

It does not port the unit tests over, unfortunately. That's a much more
invasive change.

This also updates the Dockerfile to include the MariaDB and RabbitMQ
requirements of start.py as well as adjusts the CMD to expose the
boulder server to the host machine. The Dockerfile also needed to have
its Go version bumped and the test.sh had to grow some explict
"function"s.

Updates #132
2015-08-07 23:22:52 -07:00
Roland Shoemaker 56b5aeef1a Typo 2015-08-03 11:26:48 -07:00
Roland Shoemaker 5ff3f124e5 Add line to README about start.py 2015-08-03 11:25:12 -07:00
Jeff Hodges f61dad3856 correct README discussion of godep 2015-07-24 16:39:33 -07:00
Jeff Hodges cfcd6dfc88 remove pkcs11 tag for build and test scripts
With #525 in place, we no longer need to worry about setting the pkcs11
tag everywhere.
2015-07-24 16:33:05 -07:00
Jeff Hodges 4cb661fc78 document CGO_* env variables for macports 2015-07-09 18:29:03 -07:00
Aaron Zuehlke f4378cc903 typo 2015-06-12 13:30:33 -05:00
J.C. Jones eb4e05ea8d Note that you may need to use 'brew' on OSX 2015-06-10 13:56:38 -07:00
Jacob Hoffman-Andrews 70bacd567b Include ltdl install instructions. 2015-06-05 12:05:10 -07:00
Jacob Hoffman-Andrews d80d301447 Update latest CFSSL to pick up OCSP config. 2015-06-03 16:51:23 -07:00
Jacob Hoffman-Andrews 1110666226 AMQP integration test improvements.
Clean up tempfiles on exit.
Print exceptions instead of hiding them.
Exit early if a build fails, and clean up processes that are running at the time.
Update README to reflect RabbitMQ requirement.
2015-06-02 13:39:05 -07:00
J.C. Jones 4f48f1cf7d Updates to the README for Docker 2015-06-01 23:14:34 -07:00
Richard Barnes f0e2d1fa28 Updating README with enhanced detail on what happens where. 2015-06-01 02:08:47 -04:00
Richard Barnes 9917ca17f6 Clean up TODOs 2015-06-01 02:05:17 -04:00
Jacob Hoffman-Andrews 2e212134e8 Update README: Don't mention node-acme. 2015-05-27 17:14:33 -07:00
J.C. Jones 894703ae67 Follow-on work for Issue #62
- Documentation correction
- Don't lose the problemDoc failback (merge issue, I guess?)
- Add the start of an ack script to find methods implementing the audit UUIDs
- Documentation fix (RA calls VA, not WFE)
- Audit log revocations
- Audit log unauthorized domains
- Include all SANs in issuance audit log
- Add a script to locate all audit markers
2015-05-18 18:23:09 -07:00
Jacob Hoffman-Andrews 675e4916db Add instructions to update dependencies. 2015-04-13 14:36:44 -04:00
Jacob Hoffman-Andrews 4bdec58e05 Include cfssl in vendored deps.
And introduce a start.sh that starts both boulder and cfssl.
2015-04-10 16:39:56 -07:00
J.C. Jones 4ca694a25b Note that you can (and should) run the Docker image read-only. Boulder should never write to disk itself. 2015-03-27 09:42:01 -07:00
Jacob Hoffman-Andrews dc68fd4fe1 Update README and remove Nut.toml. 2015-03-26 14:28:58 -07:00
Jacob Hoffman-Andrews 0435e0feb6 Merge branch 'master' into vendorize
Conflicts:
	analysis/analysis-engine.go
	analysis/analysis-engine_test.go
	cmd/activity-monitor/main.go
	cmd/boulder-start/main.go
2015-03-25 15:18:20 -07:00
Jacob Hoffman-Andrews ddc0d7dcf5 Vendorize all dependencies with `nut`.
Nut, https://github.com/jingweno/nut, is a tool to manage Go dependencies and
versioning by vendorizing them, i.e. including them in your own repo.

This makes version management easier, as well as authenticating the contents of
this repository.

Also inthis change: Factor out the testing commands from .travis.yml to make it
easier to run them by hand. Add Vim swap files to .gitignore.
2015-03-25 15:11:40 -07:00
J.C. Jones 29d110cc7b Issue #50: Update Dockerfile and README for the new cmd splitup 2015-03-23 12:54:05 -07:00
Richard Barnes ef7693973a Gratuitous commit to re-start Travis 2015-03-05 18:26:46 -05:00
J.C. Jones aca80d476b Add coverage figures.
- Added Gover to the list so that we can use subpackages (like analysisengine)
2015-02-19 11:42:28 -07:00
J.C. Jones 09a1c06e72 Change Dockerfile to use ENTRYPOINT. 2015-02-09 16:08:05 -07:00
J.C. Jones b662a4c8d0 Initial Docker container support.
The container hosting is at https://quay.io/repository/letsencrypt/boulder .
2015-02-03 14:35:50 -07:00
Jeff Hodges dbe6cc76f9 branch is not actually desirable 2015-01-28 15:07:32 -08:00
Jeff Hodges 331b3bf60c branch parameter 2015-01-28 14:50:30 -08:00
Jeff Hodges e96b5e7b25 use svg for build status
png was for grandfathered repos, perhaps
2015-01-28 14:48:54 -08:00
Jeff Hodges ef51c4d644 add Travis CI to check the build
This will help prevent build problems like pr #12.

It'll require someone with rights to the letsencrypt GitHub account
registering it with travis-ci.org and, I believe, turning this repo on
in it.
2015-01-28 14:23:12 -08:00
Richard Barnes 4250a66d11 Merging master 2015-01-13 17:25:59 -05:00
Richard Barnes a6242b9c1a Remove some spurious notes 2015-01-13 17:23:16 -05:00
Richard Barnes bff5db953e Change name anvil -> boulder 2015-01-13 13:39:20 +00:00
Luit van Drongelen e2b683e329 Change Quickstart instructions to go get anvil-start
Fixes #3
2014-12-26 13:33:07 +01:00
bifurcation 363b224b85 Merge pull request #1 from bfrohs/patch-1
Gender-neutral pronoun
2014-12-23 13:48:43 -05:00
Richard Barnes 229b753b5c Changing Go platform link to point to the packages page 2014-12-23 13:38:03 -05:00
Henry aa2a1ef70b Fixed links to dependencies
codegangsta/cli was broken and link to golang.org is nice to have.
2014-12-23 13:53:56 +01:00
Brandon Frohs dab643dddb Use plural "domain holders" to match "their" 2014-12-22 17:59:59 -05:00
Brandon Frohs 19268e3877 Gender-neutral pronoun 2014-12-22 17:02:04 -05:00
Richard Barnes ea10849dcf Initial check-in 2014-12-22 16:52:00 -05:00