From c653ef6811d294db6a7cb0efbeae96db24ead2da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laurent=20Saint-F=C3=A9lix?= Date: Mon, 22 Feb 2021 14:02:27 +0100 Subject: [PATCH] Rebuilding CI (#227) * CI: Reintegrate whole CI into the same Dockerfile * CI: Update Makefile with CI improvments Change certificates names Update flavor resolution * CI: Github: Implement CI modifications into Actions * Examples: Update certificates names * Generator: Update go.mod & go.sum * CI: Fix mistake in COPY command * CI: Add mod download for generated tests * CI: Fix typo * CI: Add jenkins jobs for 7.12 * CI: Removing jenkins jobs for 7.10 * CI: Removing jenkins jobs for 5.x --- Dockerfile => .ci/Dockerfile | 11 +-- .ci/jobs/elastic+go-elasticsearch+5.x.yml | 14 --- ....yml => elastic+go-elasticsearch+7.12.yml} | 9 +- .ci/run-repository.sh | 86 +++++-------------- .ci/scripts/tests-free.sh | 30 ++++--- .ci/scripts/tests-platinum.sh | 47 +++++----- .github/workflows/test-api.yml | 10 +-- Makefile | 28 +++--- _examples/security/elasticsearch-cluster.yml | 8 +- internal/cmd/generate/go.mod | 4 +- internal/cmd/generate/go.sum | 16 ++++ 11 files changed, 117 insertions(+), 146 deletions(-) rename Dockerfile => .ci/Dockerfile (75%) delete mode 100644 .ci/jobs/elastic+go-elasticsearch+5.x.yml rename .ci/jobs/{elastic+go-elasticsearch+7.10.yml => elastic+go-elasticsearch+7.12.yml} (54%) mode change 100755 => 100644 .ci/run-repository.sh mode change 100644 => 100755 .ci/scripts/tests-platinum.sh diff --git a/Dockerfile b/.ci/Dockerfile similarity index 75% rename from Dockerfile rename to .ci/Dockerfile index bd17206f26..e3a5f95e45 100644 --- a/Dockerfile +++ b/.ci/Dockerfile @@ -8,7 +8,7 @@ FROM golang:${VERSION} RUN apk add --no-cache --quiet make curl git jq unzip tree && \ go get -u golang.org/x/lint/golint && \ - curl -sSL --retry 3 --retry-connrefused https://github.com/gotestyourself/gotestsum/releases/download/v0.5.3/gotestsum_0.5.3_linux_amd64.tar.gz | tar -xz -C /usr/local/bin gotestsum + curl -sSL --retry 3 --retry-connrefused https://github.com/gotestyourself/gotestsum/releases/download/v1.6.1/gotestsum_1.6.1_linux_amd64.tar.gz | tar -xz -C /usr/local/bin gotestsum VOLUME ["/tmp"] @@ -17,10 +17,11 @@ ENV TERM xterm-256color WORKDIR /go-elasticsearch -COPY go.mod go.sum ./ +COPY . . + RUN go mod download -COPY internal/cmd/generate/go.mod internal/cmd/generate/go.sum -RUN cd internal/cmd/generate && go mod download +WORKDIR internal/cmd/generate +RUN go mod download -COPY . . +WORKDIR /go-elasticsearch \ No newline at end of file diff --git a/.ci/jobs/elastic+go-elasticsearch+5.x.yml b/.ci/jobs/elastic+go-elasticsearch+5.x.yml deleted file mode 100644 index bff81cf84b..0000000000 --- a/.ci/jobs/elastic+go-elasticsearch+5.x.yml +++ /dev/null @@ -1,14 +0,0 @@ ---- -- job: - name: elastic+go-elasticsearch+5.x - display-name: 'elastic / go-elasticsearch # 5.x' - description: Testing the go-elasticsearch 5.x branch. - junit_results: "*-junit.xml" - parameters: - - string: - name: branch_specifier - default: refs/heads/5.x - description: The Git branch specifier to build - triggers: - - github - - timed: '@daily' diff --git a/.ci/jobs/elastic+go-elasticsearch+7.10.yml b/.ci/jobs/elastic+go-elasticsearch+7.12.yml similarity index 54% rename from .ci/jobs/elastic+go-elasticsearch+7.10.yml rename to .ci/jobs/elastic+go-elasticsearch+7.12.yml index b813b91b1f..b29036f1b9 100644 --- a/.ci/jobs/elastic+go-elasticsearch+7.10.yml +++ b/.ci/jobs/elastic+go-elasticsearch+7.12.yml @@ -1,14 +1,15 @@ --- - job: - name: elastic+go-elasticsearch+7.10 - display-name: 'elastic / go-elasticsearch # 7.10' - description: Testing the go-elasticsearch 7.10 branch. + name: elastic+go-elasticsearch+7.12 + display-name: 'elastic / go-elasticsearch # 7.12' + description: Testing the go-elasticsearch 7.12 branch. junit_results: "*-junit.xml" parameters: - string: name: branch_specifier - default: refs/heads/7.10 + default: refs/heads/7.12 description: The Git branch specifier to build triggers: - github - timed: 'H */12 * * *' + diff --git a/.ci/run-repository.sh b/.ci/run-repository.sh old mode 100755 new mode 100644 index 792bb4725f..983c55de7d --- a/.ci/run-repository.sh +++ b/.ci/run-repository.sh @@ -15,10 +15,9 @@ set -euo pipefail echo -e "\033[34;1mINFO:\033[0m VERSION: ${STACK_VERSION}\033[0m" echo -e "\033[34;1mINFO:\033[0m TEST_SUITE: ${TEST_SUITE}\033[0m" echo -e "\033[34;1mINFO:\033[0m RUNSCRIPTS: ${RUNSCRIPTS}\033[0m" -echo -e "\033[34;1mINFO:\033[0m elasticsearch_url: ${elasticsearch_url}\033[0m" -echo -e "\033[34;1mINFO:\033[0m external_elasticsearch_url: ${external_elasticsearch_url}\033[0m" +echo -e "\033[34;1mINFO:\033[0m URL: ${elasticsearch_url}\033[0m" -echo -e "\033[34;1mINFO:\033[0m Pinging Elasticsearch...\033[0m" +echo -e "\033[34;1mINFO:\033[0m pinging Elasticsearch ..\033[0m" curl --insecure --fail $external_elasticsearch_url/_cluster/health?pretty if [[ "$RUNSCRIPTS" = *"enterprise-search"* ]]; then @@ -29,86 +28,41 @@ fi echo -e "\033[32;1mSUCCESS:\033[0m successfully started the ${STACK_VERSION} stack.\033[0m" -# ----------------------------------------------------------------------------- +echo -e "\033[34;1mINFO:\033[0m Building the [elastic/go-elasticsearch] image... \033[0m" -TIMEFORMAT="Duration: %0lR" +docker build \ + --file .ci/Dockerfile \ + --tag elastic/go-elasticsearch \ + . -if [[ $TEST_SUITE != "free" && $TEST_SUITE != "platinum" ]]; then - echo -e "\033[31;1mERROR:\033[0m Unknown value [$TEST_SUITE] for [TEST_SUITE]\033[0m" - exit 1 -fi - -echo -echo -e "\033[1m>>>>> SETUP [$TEST_SUITE] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" +echo -e "\033[34;1mINFO:\033[0m Retrieving Elasticsearch Version & Hash from container... \033[0m" -# Store the Elasticsearch version and build hash ELASTICSEARCH_BUILD_VERSION=$(curl -sSk $external_elasticsearch_url | jq -r '.version.number') ELASTICSEARCH_BUILD_HASH=$(curl -sSk $external_elasticsearch_url | jq -r '.version.build_hash') -# Build the go-elasticsearch image -echo -e ">>>>> Building the [elastic/go-elasticsearch] image..." -docker build --file Dockerfile --tag elastic/go-elasticsearch . +echo -e "\033[34;1mINFO:\033[0m Downloading Elasticsearch repository @ $ELASTICSEARCH_BUILD_HASH... \033[0m" +mkdir -p $WORKSPACE/tmp +curl --retry 10 -sSL "https://github.com/elastic/elasticsearch/archive/$ELASTICSEARCH_BUILD_HASH.zip" > "$WORKSPACE/tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip" -# Download Elasticsearch source code at ELASTICSEARCH_BUILD_HASH and store it in a container -echo -e ">>>>> Downloading Elasticsearch repository @ $ELASTICSEARCH_BUILD_HASH..." -time curl --retry 10 -sSL "https://github.com/elastic/elasticsearch/archive/$ELASTICSEARCH_BUILD_HASH.zip" > "/tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip" -echo -e ">>>>> Extracting the Elasticsearch source..." -time docker run --volume=/tmp:/tmp --workdir=/tmp --rm elastic/go-elasticsearch unzip -q -o "elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip" '*.properties' '*.json' '*.y*ml' -docker run --volume=/tmp:/tmp --workdir=/tmp --rm elastic/go-elasticsearch /bin/sh -c " +echo -e "\033[34;1mINFO:\033[0m Extracting the Elasticsearch source... \033[0m" +docker run --volume=$WORKSPACE/tmp:/tmp --workdir=/tmp --rm elastic/go-elasticsearch unzip -q -o "elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip" '*.properties' '*.json' '*.y*ml' +docker run --volume=$WORKSPACE/tmp:/tmp --workdir=/tmp --rm elastic/go-elasticsearch /bin/sh -c " rm -rf /tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH.zip rm -rf /tmp/elasticsearch/ mv /tmp/elasticsearch-$ELASTICSEARCH_BUILD_HASH* /tmp/elasticsearch/ " -echo -e ">>>>> Creating the container with Elasticsearch repository..." -docker container rm -f elasticsearch-source > /dev/null 2>&1 || true -docker create --name elasticsearch-source --volume /elasticsearch-source alpine /bin/true -docker cp /tmp/elasticsearch elasticsearch-source:/elasticsearch-source +echo -e "\033[34;1mINFO:\033[0m Execute [$TEST_SUITE] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" -# Launch the container; actual commands are called with "docker exec" -docker run \ - --name go-elasticsearch \ +docker run -t \ + --volume=$WORKSPACE/tmp:/tmp \ + --rm \ --network "$network_name" \ --env "ELASTICSEARCH_URL=$elasticsearch_url" \ --env "ELASTICSEARCH_VERSION=$STACK_VERSION" \ --env "ELASTICSEARCH_BUILD_VERSION=$ELASTICSEARCH_BUILD_VERSION" \ --env "ELASTICSEARCH_BUILD_HASH=$ELASTICSEARCH_BUILD_HASH" \ --env "WORKSPACE=${WORKSPACE:-/workspace}" \ - --volume "/go-elasticsearch" \ --volume "${WORKSPACE:-workspace}:${WORKSPACE:-/workspace}" \ - --volumes-from "elasticsearch-source" \ - --rm \ - --detach \ - elastic/go-elasticsearch sleep 3600 - -echo -echo -e "\033[1m>>>>> EXECUTE [$TEST_SUITE] >>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" - -# Run the tests -# NOTE: Conditions needed to prevent early exit due to the 'set -e' option -status=100 -case $TEST_SUITE in - "free" ) - if bash .ci/scripts/tests-free.sh; then - status=$? - else - status=$? - fi - ;; - "platinum" ) - if bash .ci/scripts/tests-platinum.sh; then - status=$? - else - status=$? - fi - ;; -esac - -# Report status and exit -if [[ $status == "0" ]]; then - echo -e "\n\033[32;1mSUCCESS [$TEST_SUITE]\033[0m" - exit 0 -else - echo -e "\n\033[31;1mFAILURE [$TEST_SUITE]\033[0m" - exit $status -fi + elastic/go-elasticsearch \ + .ci/scripts/tests-$TEST_SUITE.sh \ No newline at end of file diff --git a/.ci/scripts/tests-free.sh b/.ci/scripts/tests-free.sh index 5b875dbc5d..cd100431b6 100755 --- a/.ci/scripts/tests-free.sh +++ b/.ci/scripts/tests-free.sh @@ -1,26 +1,32 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh -set -euo pipefail +set -uo pipefail TIMEFORMAT="(Duration: %0lR)" -echo -e "\033[1m>>>>> Cleaning up test files\033[0m" +echo -e "\033[34;1mINFO:\033[0m Cleaning up test files\033[0m" -docker exec go-elasticsearch /bin/sh -c 'rm -rf esapi/test/*_test.go' -docker exec go-elasticsearch /bin/sh -c 'rm -rf esapi/test/xpack' +rm -rf esapi/test/*_test.go +rm -rf esapi/test/xpack -echo -e "\033[1m>>>>> Generating the API registry\033[0m" +echo -e "\033[34;1mINFO:\033[0m Generating the API registry\033[0m" -docker exec --workdir=/go-elasticsearch/internal/cmd/generate go-elasticsearch go get -u golang.org/x/tools/cmd/goimports -docker exec --workdir=/go-elasticsearch/internal/cmd/generate --env PACKAGE_PATH=/go-elasticsearch/esapi go-elasticsearch go generate ./... +cd /go-elasticsearch/internal/cmd/generate || exit +go get -u golang.org/x/tools/cmd/goimports +PACKAGE_PATH=/go-elasticsearch/esapi go generate ./... -echo -e "\033[1m>>>>> Generating the test files\033[0m" +echo -e "\033[34;1mINFO:\033[0m Generating the test files\033[0m" -time docker exec --tty --workdir=/go-elasticsearch/internal/cmd/generate go-elasticsearch go run main.go apitests --output '/go-elasticsearch/esapi/test' --input '/elasticsearch-source/elasticsearch/rest-api-spec/src/main/resources/rest-api-spec/test/**/*.y*ml' +go run main.go apitests --output '/go-elasticsearch/esapi/test' --input '/tmp/elasticsearch/rest-api-spec/src/main/resources/rest-api-spec/test/**/*.y*ml' -echo -e "\033[1m>>>>> Running the tests\033[0m" +echo -e "\033[34;1mINFO:\033[0m Download tests deps >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" -time docker exec --tty --workdir=/go-elasticsearch/esapi/test go-elasticsearch /bin/sh -c 'gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-junit.xml -- -tags=integration -timeout=1h *_test.go' +cd /go-elasticsearch/esapi/test || exit +go mod download + +echo -e "\033[34;1mINFO:\033[0m Running the tests\033[0m" + +gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-junit.xml -- -tags=integration -timeout=1h *_test.go status=$? exit $status diff --git a/.ci/scripts/tests-platinum.sh b/.ci/scripts/tests-platinum.sh old mode 100644 new mode 100755 index c66fc60950..57e0e04645 --- a/.ci/scripts/tests-platinum.sh +++ b/.ci/scripts/tests-platinum.sh @@ -1,46 +1,53 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh set -uo pipefail TIMEFORMAT="(Duration: %0lR)" -echo -e "\033[1m>>>>> Cleaning up test files\033[0m" +echo -e "\033[34;1mINFO:\033[0m Cleaning up test files\033[0m" -docker exec go-elasticsearch /bin/sh -c 'rm -rf esapi/test/*_test.go' -docker exec go-elasticsearch /bin/sh -c 'rm -rf rm -rf esapi/test/ml*' +rm -rf esapi/test/*_test.go +rm -rf rm -rf esapi/test/ml* -echo -e "\033[1m>>>>> Generating the API registry\033[0m" +echo -e "\033[34;1mINFO:\033[0m Generating the API registry\033[0m" -docker exec --workdir=/go-elasticsearch/internal/cmd/generate go-elasticsearch go get -u golang.org/x/tools/cmd/goimports -docker exec --workdir=/go-elasticsearch/internal/cmd/generate --env PACKAGE_PATH=/go-elasticsearch/esapi go-elasticsearch go generate ./... +cd /go-elasticsearch/internal/cmd/generate || exit +go get -u golang.org/x/tools/cmd/goimports +PACKAGE_PATH=/go-elasticsearch/esapi go generate ./... -echo -e "\033[1m>>>>> Generating the test files\033[0m" +echo -e "\033[34;1mINFO:\033[0m Generating the test files\033[0m" -time docker exec --tty --workdir=/go-elasticsearch/internal/cmd/generate go-elasticsearch go run main.go apitests --output '/go-elasticsearch/esapi/test/xpack' --input '/elasticsearch-source/elasticsearch/x-pack/plugin/src/test/resources/rest-api-spec/test/**/*.yml' +go run main.go apitests --output '/go-elasticsearch/esapi/test/xpack' --input '/tmp/elasticsearch/x-pack/plugin/src/test/resources/rest-api-spec/test/**/*.yml' +go run main.go apitests --output '/go-elasticsearch/esapi/test/xpack' --input '/tmp/elasticsearch/x-pack/plugin/src/test/resources/rest-api-spec/test/**/**/*.yml' -time docker exec --tty --workdir=/go-elasticsearch/internal/cmd/generate go-elasticsearch go run main.go apitests --output '/go-elasticsearch/esapi/test/xpack' --input '/elasticsearch-source/elasticsearch/x-pack/plugin/src/test/resources/rest-api-spec/test/**/**/*.yml' +cd /go-elasticsearch || exit -docker exec go-elasticsearch mkdir -p esapi/test/xpack/ml -docker exec go-elasticsearch mkdir -p esapi/test/xpack/ml-crud +mkdir -p esapi/test/xpack/ml +mkdir -p esapi/test/xpack/ml-crud -docker exec go-elasticsearch /bin/sh -c 'mv esapi/test/xpack/xpack_ml* esapi/test/xpack/ml/' -docker exec go-elasticsearch mv esapi/test/xpack/ml/xpack_ml__jobs_crud_test.go esapi/test/xpack/ml-crud/ +mv esapi/test/xpack/xpack_ml* esapi/test/xpack/ml/ +mv esapi/test/xpack/ml/xpack_ml__jobs_crud_test.go esapi/test/xpack/ml-crud/ set +e # Do not fail immediately when a single test suite fails -echo -e "\033[1m>>>>> Running tests: XPACK >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" +echo -e "\033[34;1mINFO:\033[0m Download tests deps >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" -time docker exec --tty --workdir=/go-elasticsearch/esapi/test go-elasticsearch /bin/sh -c 'gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-xpack-junit.xml -- --tags=integration --timeout=1h -v xpack/*_test.go' +cd /go-elasticsearch/esapi/test || exit +go mod download + +echo -e "\033[34;1mINFO:\033[0m Running tests: XPACK >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" + +gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-xpack-junit.xml -- --tags=integration --timeout=1h -v xpack/*_test.go status1=$? -echo -e "\033[1m>>>>> Running tests: XPACK ML >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" +echo -e "\033[34;1mINFO:\033[0m Running tests: XPACK ML >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" -time docker exec --tty --workdir=/go-elasticsearch/esapi/test go-elasticsearch /bin/sh -c 'gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-xpack-ml-junit.xml -- --tags=integration --timeout=1h -v ./xpack/ml/*_test.go' +gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-xpack-ml-junit.xml -- --tags=integration --timeout=1h -v ./xpack/ml/*_test.go status2=$? -echo -e "\033[1m>>>>> Running tests: XPACK ML CRUD >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" +echo -e "\033[34;1mINFO:\033[0m Running tests: XPACK ML CRUD >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\033[0m" -time docker exec --tty --workdir=/go-elasticsearch/esapi/test go-elasticsearch /bin/sh -c 'gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-xpack-ml-crud-junit.xml -- --tags=integration --timeout=1h -v ./xpack/ml-crud/*_test.go' +gotestsum --format=short-verbose --junitfile=$WORKSPACE/TEST-integration-api-xpack-ml-crud-junit.xml -- --tags=integration --timeout=1h -v ./xpack/ml-crud/*_test.go status3=$? if [[ $status1 == 0 && $status2 == 0 && $status3 == 0 ]]; then diff --git a/.github/workflows/test-api.yml b/.github/workflows/test-api.yml index 865b5080e1..a5eda5c1e5 100644 --- a/.github/workflows/test-api.yml +++ b/.github/workflows/test-api.yml @@ -8,8 +8,8 @@ env: GITHUB_ACTIONS: true jobs: - test-core: - name: Core + test-free: + name: Free env: ELASTICSEARCH_VERSION: elasticsearch:8.0.0-SNAPSHOT ELASTICSEARCH_URL: http://localhost:9200 @@ -40,8 +40,8 @@ jobs: - run: ELASTICSEARCH_BUILD_HASH=$(cat elasticsearch_build_hash) make gen-tests - run: make test-api - test-xpack: - name: X-Pack + test-platinum: + name: Platinum env: ELASTICSEARCH_VERSION: elasticsearch:8.0.0-SNAPSHOT ELASTICSEARCH_URL: https://elastic:elastic@localhost:9200 @@ -62,7 +62,7 @@ jobs: run: | docker pull --quiet docker.elastic.co/elasticsearch/${{ env.ELASTICSEARCH_VERSION }} docker pull --quiet appropriate/curl - make cluster-clean cluster-update cluster detach=true version="${{ env.ELASTICSEARCH_VERSION }}" + make cluster-clean cluster-update cluster flavor=platinum detach=true version="${{ env.ELASTICSEARCH_VERSION }}" - name: Download Elasticsearch source run: | curl -sSk ${{ env.ELASTICSEARCH_URL }} diff --git a/Makefile b/Makefile index ca952dd3a1..445e1048b4 100644 --- a/Makefile +++ b/Makefile @@ -45,10 +45,10 @@ endif $(eval testapiargs += "-cover" "-coverpkg=github.com/elastic/go-elasticsearch/v8/esapi" "-coverprofile=$(PWD)/tmp/integration-api.cov" "-tags='integration'" "-timeout=1h") ifdef flavor else - $(eval flavor='core') + $(eval flavor='free') endif @printf "\033[2m→ Running API integration tests for [$(flavor)]...\033[0m\n" -ifeq ($(flavor), xpack) +ifeq ($(flavor), platinum) @{ \ set -e ; \ trap "test -d .git && git checkout --quiet $(PWD)/esapi/test/go.mod" INT TERM EXIT; \ @@ -247,7 +247,10 @@ godoc: ## Display documentation for the package godoc --http=localhost:6060 --play cluster: ## Launch an Elasticsearch cluster with Docker + $(eval flavor ?= "core") $(eval version ?= "elasticsearch:8.0.0-SNAPSHOT") + $(eval elasticsearch_url = "http://es1:9200") + ifeq ($(origin nodes), undefined) $(eval nodes = 1) endif @@ -257,29 +260,26 @@ ifeq ($(shell test $(nodes) && test $(nodes) -gt 1; echo $$?),0) else $(eval detach ?= "false") endif -ifdef version -ifneq (,$(findstring oss,$(version))) - $(eval elasticsearch_url = "http://es1:9200") -else + +ifeq ($(flavor), platinum) $(eval elasticsearch_url = "https://elastic:elastic@es1:9200") $(eval xpack_env += --env "ELASTIC_PASSWORD=elastic") $(eval xpack_env += --env "xpack.license.self_generated.type=trial") $(eval xpack_env += --env "xpack.security.enabled=true") $(eval xpack_env += --env "xpack.security.http.ssl.enabled=true") $(eval xpack_env += --env "xpack.security.http.ssl.verification_mode=certificate") - $(eval xpack_env += --env "xpack.security.http.ssl.key=certs/elasticsearch.key") - $(eval xpack_env += --env "xpack.security.http.ssl.certificate=certs/elasticsearch.crt") + $(eval xpack_env += --env "xpack.security.http.ssl.key=certs/testnode.key") + $(eval xpack_env += --env "xpack.security.http.ssl.certificate=certs/testnode.crt") $(eval xpack_env += --env "xpack.security.http.ssl.certificate_authorities=certs/ca.crt") $(eval xpack_env += --env "xpack.security.http.ssl.verification_mode=none") $(eval xpack_env += --env "xpack.security.transport.ssl.enabled=true") - $(eval xpack_env += --env "xpack.security.transport.ssl.key=certs/elasticsearch.key") - $(eval xpack_env += --env "xpack.security.transport.ssl.certificate=certs/elasticsearch.crt") + $(eval xpack_env += --env "xpack.security.transport.ssl.key=certs/testnode.key") + $(eval xpack_env += --env "xpack.security.transport.ssl.certificate=certs/testnode.crt") $(eval xpack_env += --env "xpack.security.transport.ssl.certificate_authorities=certs/ca.crt") $(eval xpack_env += --env "xpack.security.transport.ssl.verification_mode=none") - $(eval xpack_volumes += --volume "$(PWD)/.ci/certs/elasticsearch.crt:/usr/share/elasticsearch/config/certs/elasticsearch.crt") - $(eval xpack_volumes += --volume "$(PWD)/.ci/certs/elasticsearch.key:/usr/share/elasticsearch/config/certs/elasticsearch.key") + $(eval xpack_volumes += --volume "$(PWD)/.ci/certs/testnode.crt:/usr/share/elasticsearch/config/certs/testnode.crt") + $(eval xpack_volumes += --volume "$(PWD)/.ci/certs/testnode.key:/usr/share/elasticsearch/config/certs/testnode.key") $(eval xpack_volumes += --volume "$(PWD)/.ci/certs/ca.crt:/usr/share/elasticsearch/config/certs/ca.crt") -endif endif @docker network inspect elasticsearch > /dev/null 2>&1 || docker network create elasticsearch; @{ \ @@ -337,7 +337,7 @@ cluster-clean: ## Remove unused Docker volumes and networks docker network prune --force docker: ## Build the Docker image and run it - docker build --file Dockerfile --tag elastic/go-elasticsearch . + docker build --file .ci/Dockerfile --tag elastic/go-elasticsearch . docker run -it --network elasticsearch --volume $(PWD)/tmp:/tmp:rw,delegated --rm elastic/go-elasticsearch ##@ Generator diff --git a/_examples/security/elasticsearch-cluster.yml b/_examples/security/elasticsearch-cluster.yml index 5118d99889..45cda288b8 100644 --- a/_examples/security/elasticsearch-cluster.yml +++ b/_examples/security/elasticsearch-cluster.yml @@ -25,13 +25,13 @@ services: - ELASTIC_PASSWORD=${ELASTIC_PASSWORD} - xpack.security.enabled=true - xpack.security.http.ssl.enabled=true - - xpack.security.http.ssl.key=/usr/share/elasticsearch/config/certificates/elasticsearch/elasticsearch.key - - xpack.security.http.ssl.certificate=/usr/share/elasticsearch/config/certificates/elasticsearch/elasticsearch.crt + - xpack.security.http.ssl.key=/usr/share/elasticsearch/config/certificates/elasticsearch/testnode.key + - xpack.security.http.ssl.certificate=/usr/share/elasticsearch/config/certificates/elasticsearch/testnode.crt - xpack.security.http.ssl.certificate_authorities=/usr/share/elasticsearch/config/certificates/ca/ca.crt - xpack.security.transport.ssl.enabled=true - xpack.security.transport.ssl.verification_mode=certificate - - xpack.security.transport.ssl.key=/usr/share/elasticsearch/config/certificates/elasticsearch/elasticsearch.key - - xpack.security.transport.ssl.certificate=/usr/share/elasticsearch/config/certificates/elasticsearch/elasticsearch.crt + - xpack.security.transport.ssl.key=/usr/share/elasticsearch/config/certificates/elasticsearch/testnode.key + - xpack.security.transport.ssl.certificate=/usr/share/elasticsearch/config/certificates/elasticsearch/testnode.crt - xpack.security.transport.ssl.certificate_authorities=/usr/share/elasticsearch/config/certificates/ca/ca.crt ulimits: { nofile: { soft: 65535, hard: 65535 }, memlock: -1 } healthcheck: diff --git a/internal/cmd/generate/go.mod b/internal/cmd/generate/go.mod index 740121dbd6..e3e3fedc9b 100644 --- a/internal/cmd/generate/go.mod +++ b/internal/cmd/generate/go.mod @@ -10,7 +10,7 @@ require ( github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/spf13/cobra v0.0.3 github.com/spf13/pflag v1.0.3 // indirect - golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 - golang.org/x/tools v0.0.0-20200311090712-aafaee8bce8c + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 + golang.org/x/tools v0.1.0 gopkg.in/yaml.v2 v2.2.2 ) diff --git a/internal/cmd/generate/go.sum b/internal/cmd/generate/go.sum index 07b9b2d145..bc34ad7542 100644 --- a/internal/cmd/generate/go.sum +++ b/internal/cmd/generate/go.sum @@ -28,29 +28,45 @@ github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073 h1:xMPOj6Pz6UipU1wXLkrtqpHbR0AVFnyPEQq/wRWz9lM= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4 h1:myAQVi0cGEoqQVR5POX+8RR2mrocKqNN1hmeMqhX27k= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200311090712-aafaee8bce8c h1:9WR4YuzLDuQMqEmLQrG0DiMmE2/HvX1dlrujzjmNVFg= golang.org/x/tools v0.0.0-20200311090712-aafaee8bce8c/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.1.0 h1:po9/4sTYwZU9lPhi1tOrb4hCv3qrhiQ77LZfGa2OjwY= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=