diff --git a/docker/ci.dockerfile b/docker/ci.dockerfile index 0aaf6cb84..30c652d5c 100644 --- a/docker/ci.dockerfile +++ b/docker/ci.dockerfile @@ -34,3 +34,8 @@ RUN /install-protobuf.bash && rm /install-protobuf.bash # Install Pre-commit RUN pip install pre-commit pytest -i https://mirrors.aliyun.com/pypi/simple/ + +# Configure envtest for integration tests of kubebuilder +ENV KUBEBUILDER_CONTROLPLANE_START_TIMEOUT 60s +COPY docker/scripts/install-kube-envtest.sh / +RUN /install-kube-envtest.sh 1.19.2 && rm /install-kube-envtest.sh diff --git a/docker/scripts/install-go.bash b/docker/scripts/install-go.bash index 4bbdc55cd..9c480192a 100755 --- a/docker/scripts/install-go.bash +++ b/docker/scripts/install-go.bash @@ -16,5 +16,6 @@ go install golang.org/x/tools/cmd/goyacc@latest > /dev/null go install golang.org/x/tools/cmd/cover@latest > /dev/null go install github.com/mattn/goveralls@latest > /dev/null go install github.com/rakyll/gotest@latest > /dev/null +go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest cp "$GOPATH"/bin/* /usr/local/bin/ diff --git a/docker/scripts/install-kube-envtest.sh b/docker/scripts/install-kube-envtest.sh new file mode 100755 index 000000000..79f59cf93 --- /dev/null +++ b/docker/scripts/install-kube-envtest.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e + +K8S_VERSION=$1 +curl -sSLo envtest-bins.tar.gz "https://go.kubebuilder.io/\ +test-tools/${K8S_VERSION}/$(go env GOOS)/$(go env GOARCH)" + +mkdir /usr/local/kubebuilder +tar -C /usr/local/kubebuilder --strip-components=1 -zvxf envtest-bins.tar.gz