From d066e2bcbb6e0cb6ff959cdb98eb4fd857f484f3 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 23 Jul 2020 17:15:02 -0700 Subject: [PATCH 01/13] ignore --- .github/workflows/kic_image.yml | 113 ++++++++++++++++++++++++++++++++ .github/workflows/master.yml | 1 + .github/workflows/pr.yml | 1 + Makefile | 3 +- 4 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/kic_image.yml diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml new file mode 100644 index 0000000000..64caa7777c --- /dev/null +++ b/.github/workflows/kic_image.yml @@ -0,0 +1,113 @@ +name: KIC_IMAGE +on: + pull_request: + paths: + - "hack/images/**" +env: + GOPROXY: https://proxy.golang.org +jobs: + build_test_iso: + runs-on: [self-hosted, Ubuntu, kvm, iso] + steps: + - name: Clean up workspace + shell: bash + run: | + pwd + ls -lah + rm -rf out + ls -lah + df -h + - uses: actions/checkout@v2 + - uses: actions/setup-go@v2 + with: + go-version: '1.14.6' + stable: true + - name: Download Dependencies + run: go mod download + - name: Build Binaries + run: | + make linux + make e2e-linux-amd64 + cp -r test/integration/testdata ./out + whoami + echo github ref $GITHUB_REF + echo workflow $GITHUB_WORKFLOW + echo home $HOME + echo event name $GITHUB_EVENT_NAME + echo workspace $GITHUB_WORKSPACE + echo "end of debug stuff" + echo $(which jq) + - name: Build Image + run: | + make kic-base-image + docker images + - name: Install kubectl + shell: bash + run: | + curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl + sudo install kubectl /usr/local/bin/kubectl + kubectl version --client=true + - name: Install gopogh + shell: bash + run: | + curl -LO https://github.com/medyagh/gopogh/releases/download/v0.2.4/gopogh-linux-amd64 + sudo install gopogh-linux-amd64 /usr/local/bin/gopogh + sudo apt-get install -y jq + - name: Install docker + shell: bash + run: | + sudo apt-get install -y docker.io + - name: Run Integration Test + continue-on-error: false + # bash {0} to allow test to continue to next step. in case of + shell: bash {0} + run: | + cd out + mkdir -p report + mkdir -p testhome + chmod a+x e2e-* + chmod a+x minikube-* + START_TIME=$(date -u +%s) + KIC_VERSION=$(egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) + KIC_IMG_HEAD="local/kicbase:${KIC_VERSION}-snapshot" + KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args="--vm-driver=docker --base-image=${KIC_IMG_HEAD}" -test.run TestFunctional -test.timeout=15m -test.v -timeout-multiplier=1.5 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt + END_TIME=$(date -u +%s) + TIME_ELAPSED=$(($END_TIME-$START_TIME)) + min=$((${TIME_ELAPSED}/60)) + sec=$((${TIME_ELAPSED}%60)) + TIME_ELAPSED="${min} min $sec seconds " + echo ::set-env name=TIME_ELAPSED::${TIME_ELAPSED} + - name: Generate HTML Report + shell: bash + run: | + cd out + export PATH=${PATH}:`go env GOPATH`/bin + go tool test2json -t < ./report/testout.txt > ./report/testout.json || true + STAT=$(gopogh -in ./report/testout.json -out ./report/testout.html -name "${JOB_NAME} ${GITHUB_REF}" -repo "${GITHUB_REPOSITORY}" -details "${GITHUB_SHA}") || true + echo status: ${STAT} + FailNum=$(echo $STAT | jq '.NumberOfFail') + TestsNum=$(echo $STAT | jq '.NumberOfTests') + GOPOGH_RESULT="${JOB_NAME} : completed with ${FailNum} / ${TestsNum} failures in ${TIME_ELAPSED}" + echo ::set-env name=GOPOGH_RESULT::${GOPOGH_RESULT} + echo ::set-env name=STAT::${STAT} + - uses: actions/upload-artifact@v1 + with: + name: kic_image_functional_test_docker_ubuntu + path: out/report + - name: The End Result iso_functional_test_kvm2_ubuntu + shell: bash + run: | + echo ${GOPOGH_RESULT} + numFail=$(echo $STAT | jq '.NumberOfFail') + numPass=$(echo $STAT | jq '.NumberOfPass') + echo "*******************${numPass} Passes :) *******************" + echo $STAT | jq '.PassedTests' || true + echo "*******************************************************" + echo "---------------- ${numFail} Failures :( ----------------------------" + echo $STAT | jq '.FailedTests' || true + echo "-------------------------------------------------------" + numPass=$(echo $STAT | jq '.NumberOfPass') + if [ "$numFail" -gt 0 ];then echo "*** $numFail Failed ***";exit 2;fi + if [ "$numPass" -eq 0 ];then echo "*** 0 Passed! ***";exit 2;fi + if [ "$numPass" -lt 33 ];then echo "*** Failed to pass at least 33 ! ***";exit 2;fi + if [ "$numPass" -eq 0 ];then echo "*** Passed! ***";exit 0;fi diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 4b9db347f7..7da27040f1 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -8,6 +8,7 @@ on: - "**.yml" - "**.yaml" - "Makefile" + - "!hack/images/**" env: GOPROXY: https://proxy.golang.org jobs: diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 0ffe0e8c63..936fd5cc88 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -6,6 +6,7 @@ on: - "**.yml" - "**.yaml" - "Makefile" + - "!hack/images/**" env: GOPROXY: https://proxy.golang.org jobs: diff --git a/Makefile b/Makefile index f900f439fe..fcddd786ca 100644 --- a/Makefile +++ b/Makefile @@ -532,7 +532,8 @@ storage-provisioner-image: out/storage-provisioner-$(GOARCH) ## Build storage-pr .PHONY: kic-base-image kic-base-image: ## builds the base image used for kic. docker rmi -f $(REGISTRY)/kicbase:$(KIC_VERSION)-snapshot || true - docker build -f ./hack/images/kicbase.Dockerfile -t $(REGISTRY)/kicbase:$(KIC_VERSION)-snapshot --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --cache-from $(REGISTRY)/kicbase:$(KIC_VERSION) --target base ./hack/images + docker build -f ./hack/images/kicbase.Dockerfile -t local/kicbase:$(KIC_VERSION)-snapshot --build-arg COMMIT_SHA=${VERSION}-$(COMMIT) --cache-from $(REGISTRY)/kicbase:$(KIC_VERSION) --target base ./hack/images + docker tag local/kicbase:$(KIC_VERSION)-snapshot $(REGISTRY)/kicbase:$(KIC_VERSION)-snapshot .PHONY: upload-preloaded-images-tar upload-preloaded-images-tar: out/minikube # Upload the preloaded images for oldest supported, newest supported, and default kubernetes versions to GCS. From 5f2ee86c5ef36e48473f76afea57fa28abf65d45 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 23 Jul 2020 23:50:43 -0700 Subject: [PATCH 02/13] bump base image --- .github/workflows/kic_image.yml | 3 +-- hack/images/kicbase.Dockerfile | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml index 64caa7777c..03991f15e2 100644 --- a/.github/workflows/kic_image.yml +++ b/.github/workflows/kic_image.yml @@ -70,7 +70,7 @@ jobs: START_TIME=$(date -u +%s) KIC_VERSION=$(egrep "Version =" pkg/drivers/kic/types.go | cut -d \" -f2) KIC_IMG_HEAD="local/kicbase:${KIC_VERSION}-snapshot" - KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args="--vm-driver=docker --base-image=${KIC_IMG_HEAD}" -test.run TestFunctional -test.timeout=15m -test.v -timeout-multiplier=1.5 -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt + KUBECONFIG=$(pwd)/testhome/kubeconfig MINIKUBE_HOME=$(pwd)/testhome ./e2e-linux-amd64 -minikube-start-args="--vm-driver=docker --base-image=${KIC_IMG_HEAD}" -test.v -binary=./minikube-linux-amd64 2>&1 | tee ./report/testout.txt END_TIME=$(date -u +%s) TIME_ELAPSED=$(($END_TIME-$START_TIME)) min=$((${TIME_ELAPSED}/60)) @@ -109,5 +109,4 @@ jobs: numPass=$(echo $STAT | jq '.NumberOfPass') if [ "$numFail" -gt 0 ];then echo "*** $numFail Failed ***";exit 2;fi if [ "$numPass" -eq 0 ];then echo "*** 0 Passed! ***";exit 2;fi - if [ "$numPass" -lt 33 ];then echo "*** Failed to pass at least 33 ! ***";exit 2;fi if [ "$numPass" -eq 0 ];then echo "*** Passed! ***";exit 0;fi diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index 9f39004154..0f15b8b3d6 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -2,7 +2,7 @@ ARG COMMIT_SHA # using base image created by kind https://github.com/kubernetes-sigs/kind/blob/master/images/base/Dockerfile # which is an ubuntu 19.10 with an entry-point that helps running systemd # could be changed to any debian that can run systemd -FROM kindest/base:v20200317-92225082 as base +FROM kindest/base:v20200430-2c0eee40 as base USER root # specify version of everything explicitly using 'apt-cache policy' RUN apt-get update && apt-get install -y --no-install-recommends \ From 7675072aa1019299fc3826fdb9b77b7661036c3b Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 23 Jul 2020 23:51:06 -0700 Subject: [PATCH 03/13] update comments --- hack/images/kicbase.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index 0f15b8b3d6..02505bf643 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -1,6 +1,6 @@ ARG COMMIT_SHA # using base image created by kind https://github.com/kubernetes-sigs/kind/blob/master/images/base/Dockerfile -# which is an ubuntu 19.10 with an entry-point that helps running systemd +# which is an ubuntu 20.04 with an entry-point that helps running systemd # could be changed to any debian that can run systemd FROM kindest/base:v20200430-2c0eee40 as base USER root From 09a32f11cc942ac50ae1b64c0ee7b2f7f5d18bb5 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Thu, 23 Jul 2020 23:59:44 -0700 Subject: [PATCH 04/13] install make --- .github/workflows/kic_image.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml index 03991f15e2..38e53888bb 100644 --- a/.github/workflows/kic_image.yml +++ b/.github/workflows/kic_image.yml @@ -6,7 +6,7 @@ on: env: GOPROXY: https://proxy.golang.org jobs: - build_test_iso: + build_test_kic_image: runs-on: [self-hosted, Ubuntu, kvm, iso] steps: - name: Clean up workspace @@ -26,6 +26,7 @@ jobs: run: go mod download - name: Build Binaries run: | + apt-get install -y make make linux make e2e-linux-amd64 cp -r test/integration/testdata ./out @@ -94,7 +95,7 @@ jobs: with: name: kic_image_functional_test_docker_ubuntu path: out/report - - name: The End Result iso_functional_test_kvm2_ubuntu + - name: The End Result build_test_kic_image_docker_ubuntu shell: bash run: | echo ${GOPOGH_RESULT} From b662a4ea9c5bc196b42bd30c84b4073a6f95ab18 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 00:02:10 -0700 Subject: [PATCH 05/13] install make --- .github/workflows/kic_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml index 38e53888bb..c7045afeb6 100644 --- a/.github/workflows/kic_image.yml +++ b/.github/workflows/kic_image.yml @@ -26,7 +26,7 @@ jobs: run: go mod download - name: Build Binaries run: | - apt-get install -y make + sudo apt-get install -y make make linux make e2e-linux-amd64 cp -r test/integration/testdata ./out From da0ca847620ca7470476fc1d17f538b711003389 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 00:07:45 -0700 Subject: [PATCH 06/13] install gcc --- .github/workflows/kic_image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml index c7045afeb6..400ecdc925 100644 --- a/.github/workflows/kic_image.yml +++ b/.github/workflows/kic_image.yml @@ -26,7 +26,7 @@ jobs: run: go mod download - name: Build Binaries run: | - sudo apt-get install -y make + sudo apt-get install -y make build-essential make linux make e2e-linux-amd64 cp -r test/integration/testdata ./out From bd62de7858a851214740889d9d4fcd653477ca0d Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 00:10:23 -0700 Subject: [PATCH 07/13] install docker --- .github/workflows/kic_image.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml index 400ecdc925..f942dd94e2 100644 --- a/.github/workflows/kic_image.yml +++ b/.github/workflows/kic_image.yml @@ -40,6 +40,7 @@ jobs: echo $(which jq) - name: Build Image run: | + sudo apt-get install -y docker.io make kic-base-image docker images - name: Install kubectl From 93517b95d8386878ed9c2d3d3e75883ab1f2c111 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 00:19:48 -0700 Subject: [PATCH 08/13] remove pinned vers --- .github/workflows/kic_image.yml | 3 ++- hack/images/kicbase.Dockerfile | 14 +++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/kic_image.yml b/.github/workflows/kic_image.yml index f942dd94e2..b7b7263e5e 100644 --- a/.github/workflows/kic_image.yml +++ b/.github/workflows/kic_image.yml @@ -26,6 +26,7 @@ jobs: run: go mod download - name: Build Binaries run: | + sudo apt-get update sudo apt-get install -y make build-essential make linux make e2e-linux-amd64 @@ -39,7 +40,7 @@ jobs: echo "end of debug stuff" echo $(which jq) - name: Build Image - run: | + run: | sudo apt-get install -y docker.io make kic-base-image docker images diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index 02505bf643..d3536a9eaf 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -6,14 +6,14 @@ FROM kindest/base:v20200430-2c0eee40 as base USER root # specify version of everything explicitly using 'apt-cache policy' RUN apt-get update && apt-get install -y --no-install-recommends \ - lz4=1.9.1-1 \ - gnupg=2.2.12-1ubuntu3 \ - sudo=1.8.27-1ubuntu4.1 \ - docker.io=19.03.2-0ubuntu1 \ - openssh-server=1:8.0p1-6build1 \ - dnsutils=1:9.11.5.P4+dfsg-5.1ubuntu2.2 \ + lz4 \ + gnupg \ + sudo \ + docker.io \ + openssh-server \ + dnsutils \ # libglib2.0-0 is required for conmon, which is required for podman - libglib2.0-0=2.62.1-1 \ + libglib2.0-0 \ && rm /etc/crictl.yaml # install cri-o based on https://github.com/cri-o/cri-o/commit/96b0c34b31a9fc181e46d7d8e34fb8ee6c4dc4e1#diff-04c6e90faac2675aa89e2176d2eec7d8R128 From 73d05e5783eb2ffa3150196d594d8e15a6edb0cc Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 00:20:19 -0700 Subject: [PATCH 09/13] fix indent --- hack/images/kicbase.Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index d3536a9eaf..c48c3d26f4 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -71,4 +71,4 @@ RUN apt-get clean -y && rm -rf \ /usr/share/doc/* \ /usr/share/man/* \ /usr/share/local/* \ - RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" +RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" From bd713ffd45b4f47ff42fc670b9070ea92025b1d7 Mon Sep 17 00:00:00 2001 From: Thomas Stromberg Date: Fri, 24 Jul 2020 09:02:32 -0700 Subject: [PATCH 10/13] Increase maximum container startup wait from 13 seconds to 25 seconds --- pkg/drivers/kic/oci/oci.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/drivers/kic/oci/oci.go b/pkg/drivers/kic/oci/oci.go index 58ca4ccddf..8756176592 100644 --- a/pkg/drivers/kic/oci/oci.go +++ b/pkg/drivers/kic/oci/oci.go @@ -223,8 +223,7 @@ func CreateContainerNode(p CreateParams) error { return nil } - // retry up to up 13 seconds to make sure the created container status is running. - if err := retry.Expo(checkRunning, 13*time.Millisecond, time.Second*13); err != nil { + if err := retry.Expo(checkRunning, 15*time.Millisecond, 25*time.Second); err != nil { LogContainerDebug(p.OCIBinary, p.Name) _, err := DaemonInfo(p.OCIBinary) if err != nil { From fa35467038e4ce09b310389509faa2fee4ef836b Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 11:12:45 -0700 Subject: [PATCH 11/13] revert unrelated change --- hack/images/kicbase.Dockerfile | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index c48c3d26f4..0e0f599b36 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -1,19 +1,19 @@ ARG COMMIT_SHA # using base image created by kind https://github.com/kubernetes-sigs/kind/blob/master/images/base/Dockerfile -# which is an ubuntu 20.04 with an entry-point that helps running systemd +# which is an ubuntu 19.10 with an entry-point that helps running systemd # could be changed to any debian that can run systemd -FROM kindest/base:v20200430-2c0eee40 as base +FROM kindest/base:v20200317-92225082 as base USER root # specify version of everything explicitly using 'apt-cache policy' RUN apt-get update && apt-get install -y --no-install-recommends \ - lz4 \ - gnupg \ - sudo \ - docker.io \ - openssh-server \ - dnsutils \ + lz4=1.9.1-1 \ + gnupg=2.2.12-1ubuntu3 \ + sudo=1.8.27-1ubuntu4.1 \ + docker.io=19.03.2-0ubuntu1 \ + openssh-server=1:8.0p1-6build1 \ + dnsutils=1:9.11.5.P4+dfsg-5.1ubuntu2.2 \ # libglib2.0-0 is required for conmon, which is required for podman - libglib2.0-0 \ + libglib2.0-0=2.62.1-1 \ && rm /etc/crictl.yaml # install cri-o based on https://github.com/cri-o/cri-o/commit/96b0c34b31a9fc181e46d7d8e34fb8ee6c4dc4e1#diff-04c6e90faac2675aa89e2176d2eec7d8R128 @@ -71,4 +71,4 @@ RUN apt-get clean -y && rm -rf \ /usr/share/doc/* \ /usr/share/man/* \ /usr/share/local/* \ -RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" + RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" \ No newline at end of file From afb07135c62f5ead42ff5a5a5ab004c20ecc6d94 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 11:13:23 -0700 Subject: [PATCH 12/13] revert unrelated change --- hack/images/kicbase.Dockerfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index 0e0f599b36..ef53df075e 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -71,4 +71,5 @@ RUN apt-get clean -y && rm -rf \ /usr/share/doc/* \ /usr/share/man/* \ /usr/share/local/* \ - RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" \ No newline at end of file + RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" + \ No newline at end of file From ae3ee9417e844b48c069eac58754fe8a40f9b4f5 Mon Sep 17 00:00:00 2001 From: Medya Gh Date: Fri, 24 Jul 2020 11:16:13 -0700 Subject: [PATCH 13/13] revert unrelated change --- hack/images/kicbase.Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/hack/images/kicbase.Dockerfile b/hack/images/kicbase.Dockerfile index ef53df075e..9f39004154 100644 --- a/hack/images/kicbase.Dockerfile +++ b/hack/images/kicbase.Dockerfile @@ -72,4 +72,3 @@ RUN apt-get clean -y && rm -rf \ /usr/share/man/* \ /usr/share/local/* \ RUN echo "kic! Build: ${COMMIT_SHA} Time :$(date)" > "/kic.txt" - \ No newline at end of file