From 9371c49b59f3917f2184dad3f94938e8f708e5ac Mon Sep 17 00:00:00 2001 From: Ying Li Date: Wed, 18 May 2016 05:29:05 -0500 Subject: [PATCH 1/3] Move the SERVICE_NAME environment variable definitions into the server/signer Dockerfiles Signed-off-by: Ying Li --- development.rethink.yml | 6 +----- development.yml | 4 ---- docker-compose.rethink.yml | 8 ++------ docker-compose.yml | 4 ---- server.Dockerfile | 1 + signer.Dockerfile | 1 + 6 files changed, 5 insertions(+), 19 deletions(-) diff --git a/development.rethink.yml b/development.rethink.yml index 1b144a9f20..9c8cffa4e9 100644 --- a/development.rethink.yml +++ b/development.rethink.yml @@ -11,8 +11,6 @@ services: links: - rdb-proxy:rdb-proxy.rdb - signer - environment: - - SERVICE_NAME=notary_server ports: - "8080" - "4443:4443" @@ -32,8 +30,6 @@ services: - notarysigner links: - rdb-proxy:rdb-proxy.rdb - environment: - - SERVICE_NAME=notary_signer entrypoint: /usr/bin/env sh command: -c "sh migrations/rethink_migrate.sh && notary-signer -config=fixtures/signer-config.rethink.json" depends_on: @@ -110,4 +106,4 @@ volumes: external: false networks: rdb: - external: false \ No newline at end of file + external: false diff --git a/development.yml b/development.yml index a34c50432a..ce6641475b 100644 --- a/development.yml +++ b/development.yml @@ -5,8 +5,6 @@ server: - mysql - signer - signer:notarysigner - environment: - - SERVICE_NAME=notary_server entrypoint: /usr/bin/env sh command: -c "./migrations/migrate.sh && notary-server -config=fixtures/server-config.json" signer: @@ -14,8 +12,6 @@ signer: dockerfile: signer.Dockerfile links: - mysql - environment: - - SERVICE_NAME=notary_signer entrypoint: /usr/bin/env sh command: -c "./migrations/migrate.sh && notary-signer -config=fixtures/signer-config.json" mysql: diff --git a/docker-compose.rethink.yml b/docker-compose.rethink.yml index 8f2cdaba35..18b66c5ed2 100644 --- a/docker-compose.rethink.yml +++ b/docker-compose.rethink.yml @@ -1,7 +1,7 @@ version: "2" services: server: - build: + build: context: . dockerfile: server.Dockerfile volumes: @@ -11,8 +11,6 @@ services: links: - rdb-proxy:rdb-proxy.rdb - signer - environment: - - SERVICE_NAME=notary_server ports: - "8080" - "4443:4443" @@ -21,7 +19,7 @@ services: depends_on: - rdb-proxy signer: - build: + build: context: . dockerfile: signer.Dockerfile volumes: @@ -32,8 +30,6 @@ services: - notarysigner links: - rdb-proxy:rdb-proxy.rdb - environment: - - SERVICE_NAME=notary_signer entrypoint: /usr/bin/env sh command: -c "sh migrations/rethink_migrate.sh && notary-signer -config=fixtures/signer-config.rethink.json" depends_on: diff --git a/docker-compose.yml b/docker-compose.yml index 00be689c2e..e94e420cd7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,8 +5,6 @@ server: - mysql - signer - signer:notarysigner - environment: - - SERVICE_NAME=notary_server ports: - "8080" - "4443:4443" @@ -17,8 +15,6 @@ signer: dockerfile: signer.Dockerfile links: - mysql - environment: - - SERVICE_NAME=notary_signer entrypoint: /usr/bin/env sh command: -c "./migrations/migrate.sh && notary-signer -config=fixtures/signer-config.json" mysql: diff --git a/server.Dockerfile b/server.Dockerfile index 9103a57ccf..c620530fb5 100644 --- a/server.Dockerfile +++ b/server.Dockerfile @@ -13,6 +13,7 @@ COPY . /go/src/${NOTARYPKG} WORKDIR /go/src/${NOTARYPKG} +ENV SERVICE_NAME=notary_server EXPOSE 4443 # Install notary-server diff --git a/signer.Dockerfile b/signer.Dockerfile index fad8041ae0..8ec7b3e062 100644 --- a/signer.Dockerfile +++ b/signer.Dockerfile @@ -13,6 +13,7 @@ COPY . /go/src/${NOTARYPKG} WORKDIR /go/src/${NOTARYPKG} +ENV SERVICE_NAME=notary_signer ENV NOTARY_SIGNER_DEFAULT_ALIAS="timestamp_1" ENV NOTARY_SIGNER_TIMESTAMP_1="testpassword" From 0c552e92a42940ba35c83723084264372a15b3eb Mon Sep 17 00:00:00 2001 From: Ying Li Date: Wed, 18 May 2016 06:14:23 -0500 Subject: [PATCH 2/3] Explicitly wait for all replicas to be ready on bootstrapping. While this should be the rethinkdb default, I was running into errors sometimes after bootstrapping - the signer and servers sometimes can't connect after bootstrapping. Signed-off-by: Ying Li --- storage/rethinkdb/bootstrap.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/rethinkdb/bootstrap.go b/storage/rethinkdb/bootstrap.go index 16bf4ed560..d7cadcff67 100644 --- a/storage/rethinkdb/bootstrap.go +++ b/storage/rethinkdb/bootstrap.go @@ -10,7 +10,7 @@ import ( ) // Wait for 60 seconds maximum on Wait() calls for rethink -var timeoutOpt = gorethink.WaitOpts{Timeout: time.Minute.Seconds()} +var timeoutOpt = gorethink.WaitOpts{WaitFor: "all_replicas_ready", Timeout: time.Minute.Seconds()} func makeDB(session *gorethink.Session, name string) error { _, err := gorethink.DBCreate(name).RunWrite(session) From 9974f9b995e3e2ff1dd9b2e46d06a6a40faffd21 Mon Sep 17 00:00:00 2001 From: Ying Li Date: Wed, 18 May 2016 06:18:47 -0500 Subject: [PATCH 3/3] Rethink requires that each subsequent replica join another existant replica. Fix the compose file so that 2 and 3 join 1, otherwise the servers didn't actually seem to be clustered. Signed-off-by: Ying Li --- docker-compose.rethink.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docker-compose.rethink.yml b/docker-compose.rethink.yml index 18b66c5ed2..8b99b5a4a2 100644 --- a/docker-compose.rethink.yml +++ b/docker-compose.rethink.yml @@ -12,7 +12,6 @@ services: - rdb-proxy:rdb-proxy.rdb - signer ports: - - "8080" - "4443:4443" entrypoint: /usr/bin/env sh command: -c "sh migrations/rethink_migrate.sh && notary-server -config=fixtures/server-config.rethink.json" @@ -42,10 +41,8 @@ services: networks: rdb: aliases: - - rdb - - rdb.rdb - rdb-01.rdb - command: "--bind all --no-http-admin --server-name rdb_01 --canonical-address rdb-01.rdb --directory /var/data/rethinkdb --join rdb.rdb --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" + command: "--bind all --no-http-admin --server-name rdb_01 --canonical-address rdb-01.rdb --directory /var/data/rethinkdb --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" rdb-02: image: jlhawn/rethinkdb:2.3.0 volumes: @@ -54,10 +51,10 @@ services: networks: rdb: aliases: - - rdb - - rdb.rdb - rdb-02.rdb - command: "--bind all --no-http-admin --server-name rdb_02 --canonical-address rdb-02.rdb --directory /var/data/rethinkdb --join rdb.rdb --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" + command: "--bind all --no-http-admin --server-name rdb_02 --canonical-address rdb-02.rdb --directory /var/data/rethinkdb --join rdb-01:29015 --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" + depends_on: + - rdb-01 rdb-03: image: jlhawn/rethinkdb:2.3.0 volumes: @@ -66,10 +63,11 @@ services: networks: rdb: aliases: - - rdb - - rdb.rdb - rdb-03.rdb - command: "--bind all --no-http-admin --server-name rdb_03 --canonical-address rdb-03.rdb --directory /var/data/rethinkdb --join rdb.rdb --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" + command: "--bind all --no-http-admin --server-name rdb_03 --canonical-address rdb-03.rdb --directory /var/data/rethinkdb --join rdb-02:29015 --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" + depends_on: + - rdb-01 + - rdb-02 rdb-proxy: image: jlhawn/rethinkdb:2.3.0 ports: @@ -81,7 +79,7 @@ services: aliases: - rdb-proxy - rdb-proxy.rdp - command: "proxy --bind all --join rdb.rdb --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" + command: "proxy --bind all --join rdb-03:29015 --driver-tls-ca /tls/ca.pem --driver-tls-key /tls/key.pem --driver-tls-cert /tls/cert.pem --cluster-tls-key /tls/key.pem --cluster-tls-cert /tls/cert.pem --cluster-tls-ca /tls/ca.pem" depends_on: - rdb-01 - rdb-02