forked from etcd-io/etcd
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
For etcd-io#8502. First step to make DNS/SRV tests easier to run. ``` make docker-test-compile make docker-dns-test-build make docker-dns-test-run ``` Signed-off-by: Gyu-Ho Lee <gyuhox@gmail.com>
- Loading branch information
Showing
9 changed files
with
118 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,108 @@ | ||
.PHONY: build | ||
build: | ||
GO_BUILD_FLAGS="-v" ./build | ||
./bin/etcd --version | ||
ETCDCTL_API=3 ./bin/etcdctl version | ||
|
||
# run all tests | ||
test-all: | ||
RELEASE_TEST=y INTEGRATION=y PASSES='build unit release integration_e2e functional' ./test 2>&1 | tee test.log | ||
|
||
# clean up failed tests, logs, dependencies | ||
clean: | ||
rm -f ./*.log | ||
rm -f ./bin/Dockerfile-release | ||
rm -rf ./gopath | ||
rm -rf ./release | ||
rm -f ./integration/127.0.0.1:* ./integration/localhost:* | ||
rm -f ./clientv3/integration/127.0.0.1:* ./clientv3/integration/localhost:* | ||
rm -f ./clientv3/ordering/127.0.0.1:* ./clientv3/ordering/localhost:* | ||
|
||
# keep in-sync with 'Dockerfile-test', 'e2e/docker-dns/Dockerfile' | ||
GO_VERSION = go1.9 | ||
|
||
# build base container image for testing on Linux | ||
docker-test-build: | ||
docker build --tag gcr.io/etcd-development/etcd-test:$(GO_VERSION) --file ./Dockerfile-test . | ||
|
||
# e.g. | ||
# gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd.json)" https://gcr.io | ||
docker-test-push: | ||
gcloud docker -- push gcr.io/etcd-development/etcd-test:$(GO_VERSION) | ||
|
||
docker-test-pull: | ||
docker pull gcr.io/etcd-development/etcd-test:$(GO_VERSION) | ||
|
||
# compile etcd and etcdctl with Linux | ||
docker-test-compile: | ||
docker run \ | ||
--rm \ | ||
--volume=`pwd`/:/etcd \ | ||
gcr.io/etcd-development/etcd-test:$(GO_VERSION) \ | ||
/bin/bash -c "pushd /etcd && GO_BUILD_FLAGS=-v ./build && ./bin/etcd --version" | ||
|
||
# run tests inside container | ||
docker-test: | ||
docker run \ | ||
--rm \ | ||
--volume=`pwd`:/go/src/github.com/coreos/etcd \ | ||
gcr.io/etcd-development/etcd-test:$(GO_VERSION) \ | ||
/bin/bash -c "RELEASE_TEST=y INTEGRATION=y PASSES='build unit release integration_e2e functional' ./test 2>&1 | tee docker-test.log" | ||
|
||
docker-test-386: | ||
docker run \ | ||
--rm \ | ||
--volume=`pwd`:/go/src/github.com/coreos/etcd \ | ||
gcr.io/etcd-development/etcd-test:$(GO_VERSION) \ | ||
/bin/bash -c "GOARCH=386 PASSES='build unit integration_e2e' ./test 2>&1 | tee docker-test.log" | ||
|
||
# build release container image with Linux | ||
VERSION ?= $(shell git rev-parse --short HEAD || echo "GitNotFound") | ||
docker-release-master-build: docker-test-compile | ||
cp ./Dockerfile-release ./bin/Dockerfile-release | ||
docker build \ | ||
--tag gcr.io/etcd-development/etcd:$(VERSION) \ | ||
--file ./bin/Dockerfile-release \ | ||
./bin | ||
rm -f ./bin/Dockerfile-release | ||
|
||
docker run \ | ||
--rm \ | ||
gcr.io/etcd-development/etcd:$(VERSION) \ | ||
/bin/sh -c "/usr/local/bin/etcd --version && ETCDCTL_API=3 /usr/local/bin/etcdctl version" | ||
|
||
docker-release-master-push: | ||
gcloud docker -- push gcr.io/etcd-development/etcd:$(VERSION) | ||
|
||
# build base container image for DNS testing | ||
docker-dns-test-build: | ||
docker build \ | ||
--tag gcr.io/etcd-development/etcd-dns-test:$(GO_VERSION) \ | ||
--file ./e2e/docker-dns/Dockerfile \ | ||
./e2e/docker-dns | ||
|
||
docker run \ | ||
--rm \ | ||
--dns 127.0.0.1 \ | ||
gcr.io/etcd-development/etcd-dns-test:$(GO_VERSION) \ | ||
/bin/bash -c "/etc/init.d/bind9 start && cat /dev/null >/etc/hosts && dig etcd.local" | ||
|
||
docker-dns-test-push: | ||
gcloud docker -- push gcr.io/etcd-development/etcd-dns-test:$(GO_VERSION) | ||
|
||
docker-dns-test-pull: | ||
docker pull gcr.io/etcd-development/etcd-dns-test:$(GO_VERSION) | ||
|
||
# run DNS tests inside container | ||
docker-dns-test-run: | ||
docker run \ | ||
--rm \ | ||
--tty \ | ||
--dns 127.0.0.1 \ | ||
--volume=`pwd`/bin:/etcd \ | ||
--volume=`pwd`/integration/fixtures:/certs \ | ||
gcr.io/etcd-development/etcd-dns-test:$(GO_VERSION) \ | ||
/bin/bash -c "pushd /etcd && /run.sh && rm -rf infra*.etcd && popd" | ||
|
||
# TODO: add DNS SRV tests | ||
# TODO: add DNS integration tests |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,12 +1,18 @@ | ||
FROM golang:1.9-stretch | ||
LABEL Description="Image for etcd DNS testing" | ||
RUN apt update -y | ||
RUN go get github.com/mattn/goreman | ||
RUN apt install -y bind9 | ||
|
||
RUN apt update -y \ | ||
&& apt install -y \ | ||
bind9 \ | ||
dnsutils | ||
|
||
RUN mkdir /var/bind | ||
RUN chown bind /var/bind | ||
ADD Procfile.tls /Procfile.tls | ||
ADD run.sh /run.sh | ||
|
||
ADD named.conf etcd.zone rdns.zone /etc/bind/ | ||
ADD resolv.conf /etc/resolv.conf | ||
CMD ["/run.sh"] | ||
|
||
RUN go get github.com/mattn/goreman | ||
CMD ["/run.sh"] |
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file was deleted.
Oops, something went wrong.