From 9b91234d6acb1574f1e143d66a7a0adc96a81569 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Mon, 14 Feb 2022 16:56:21 +0530 Subject: [PATCH 01/41] add drone's build and validate job in github actions workflow --- .github/workflows/ci.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1203be01b3..25bd75f5aa 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -510,3 +510,35 @@ jobs: run: | cd images/kube-webhook-certgen && make test test-e2e + rancher-validate: + runs-on: ubuntu-latest + env: + PLATFORMS: linux/amd64 + container: + image: rancher/dapper:v0.5.3 + env: + GIT_IN_DAPPER: true + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: validate + run: | + dapper validate + + rancher-build: + needs: rancher-validate + runs-on: ubuntu-latest + env: + PLATFORMS: linux/amd64 + container: + image: rancher/dapper:v0.5.3 + env: + GIT_IN_DAPPER: true + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: build + run: | + dapper build From e2992177fe5fa6f626f321bb742ced71b79a6835 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Mon, 14 Feb 2022 18:25:38 +0530 Subject: [PATCH 02/41] add release workflow which will run only while tagging --- .github/workflows/release.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000000..ca2774dbe4 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,24 @@ +name: release + +on: + push: + tags: + - '*' + +jobs: + + rancher-ci: + runs-on: ubuntu-latest + container: + image: rancher/dapper:v0.5.3 + env: + GIT_IN_DAPPER: true + DOCKER_USER: ${{ secrets.docker_username }} + DOCKER_PASS: ${{ secrets.docker_password }} + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: tag + run: | + dapper ci \ No newline at end of file From a448dffea780e740fb19c4100b7bf8719c283c76 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Wed, 16 Feb 2022 19:12:30 +0530 Subject: [PATCH 03/41] added git in workflow steps for build and release --- .github/workflows/ci.yaml | 4 ++++ .github/workflows/release.yaml | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 25bd75f5aa..a48a577c4c 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -536,6 +536,10 @@ jobs: env: GIT_IN_DAPPER: true steps: + - name: Install git + run: | + apk add --no-cache git + - name: Checkout uses: actions/checkout@v2 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ca2774dbe4..e8619317ff 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -2,8 +2,8 @@ name: release on: push: - tags: - - '*' + tags: + - '*' jobs: @@ -16,9 +16,13 @@ jobs: DOCKER_USER: ${{ secrets.docker_username }} DOCKER_PASS: ${{ secrets.docker_password }} steps: + - name: Add git + run: | + apk add --no-cache git + - name: Checkout uses: actions/checkout@v2 - name: tag run: | - dapper ci \ No newline at end of file + dapper ci From 4f32f2538bd33bb86cd690d92647cb6166f5f95b Mon Sep 17 00:00:00 2001 From: Ryan Sanna Date: Thu, 7 May 2020 16:08:55 -0700 Subject: [PATCH 04/41] cherry pick commits: f3277463565ce64284d96aa659b5d0d11c17f058, b8966a64f5244c7a90cbd2282157db2838a508af refactor rancher build process due to upstream changes --- .drone.yml | 32 ++++++++++++++++++++++++++++++++ .gitignore | 4 ++++ Dockerfile.dapper | 44 ++++++++++++++++++++++++++++++++++++++++++++ Makefile | 7 +------ Makefile_rancher | 23 +++++++++++++++++++++++ internal/k8s/main.go | 14 ++++++++++++++ scripts/build | 17 +++++++++++++++++ scripts/ci | 9 +++++++++ scripts/entry | 11 +++++++++++ scripts/package | 12 ++++++++++++ scripts/release | 3 +++ scripts/test | 15 +++++++++++++++ scripts/validate | 14 ++++++++++++++ scripts/version | 31 +++++++++++++++++++++++++++++++ 14 files changed, 230 insertions(+), 6 deletions(-) create mode 100644 .drone.yml create mode 100644 Dockerfile.dapper create mode 100644 Makefile_rancher create mode 100755 scripts/build create mode 100755 scripts/ci create mode 100755 scripts/entry create mode 100755 scripts/package create mode 100755 scripts/release create mode 100755 scripts/test create mode 100755 scripts/validate create mode 100755 scripts/version diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000000..8271a9e6a9 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,32 @@ +--- +kind: pipeline +name: ci + +platform: + os: linux + arch: amd64 + +steps: +- name: build + image: rancher/dapper:v0.5.3 + commands: + - dapper ci + environment: + GIT_IN_DAPPER: true + DOCKER_PASS: + from_secret: docker_password + DOCKER_USER: + from_secret: docker_username + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - tag + instance: + - drone-publish.rancher.io + +volumes: +- name: docker + host: + path: /var/run/docker.sock \ No newline at end of file diff --git a/.gitignore b/.gitignore index 60bf6a304c..16c4188ddf 100644 --- a/.gitignore +++ b/.gitignore @@ -61,3 +61,7 @@ cmd/plugin/release/*.tar.gz cmd/plugin/release/LICENSE tmp/ test/junitreports/ + +# rancher ci +.dapper +/dist/ diff --git a/Dockerfile.dapper b/Dockerfile.dapper new file mode 100644 index 0000000000..3154fa0fcc --- /dev/null +++ b/Dockerfile.dapper @@ -0,0 +1,44 @@ +FROM docker:19.03.8 +ARG DAPPER_HOST_ARCH +ENV ARCH=${DAPPER_HOST_ARCH} +RUN mkdir -p /.docker/cli-plugins +RUN apk update && apk upgrade && apk add bash && ln -sf /bin/bash /bin/sh # use bash for subsequent variable expansion +ENV DOCKER_BUILDX_URL_arm=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm-v7 \ + DOCKER_BUILDX_URL_arm64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm64 \ + DOCKER_BUILDX_URL_amd64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 \ + DOCKER_BUILDX_URL=DOCKER_BUILDX_URL_${ARCH} +RUN wget -O - ${!DOCKER_BUILDX_URL} > /.docker/cli-plugins/docker-buildx && chmod +x /.docker/cli-plugins/docker-buildx + +FROM ubuntu:18.04 +ARG DAPPER_HOST_ARCH +ARG DOCKER_USER +ARG DOCKER_PASS +ENV HOST_ARCH=${DAPPER_HOST_ARCH} \ + ARCH=${DAPPER_HOST_ARCH} \ + DOCKER_USER=${DOCKER_USER} \ + DOCKER_PASS=${DOCKER_PASS} +RUN apt-get update && \ + apt-get install -y gcc ca-certificates git wget curl vim less file zip make && \ + rm -f /bin/sh && ln -s /bin/bash /bin/sh +ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ + GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash +RUN wget -O - https://dl.google.com/go/go1.14.1.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ + go get github.com/rancher/trash && go get golang.org/x/lint/golint && go get -u github.com/jteeuwen/go-bindata/... +COPY --from=0 /usr/local/bin/docker /usr/bin/docker +RUN mkdir -p /.docker/cli-plugins +COPY --from=0 /.docker/cli-plugins/docker-buildx /.docker/cli-plugins/docker-buildx +ENV DOCKER_CLI_EXPERIMENTAL=enabled \ + DOCKER_CONFIG=/.docker +RUN docker buildx install +ENV DAPPER_SOURCE /go/src/k8s.io/ingress-nginx/ +ENV DAPPER_OUTPUT ./bin ./dist +ENV DAPPER_DOCKER_SOCKET true +ENV DAPPER_ENV CROSS TAG +ENV DAPPER_RUN_ARGS="--net host" +ENV TRASH_CACHE ${DAPPER_SOURCE}/.trash-cache +ENV HOME ${DAPPER_SOURCE} +ENV GIT_IN_DAPPER true +RUN mkdir -p /etc/nginx/geoip +WORKDIR ${DAPPER_SOURCE} +ENTRYPOINT ["./scripts/entry"] +CMD ["ci"] \ No newline at end of file diff --git a/Makefile b/Makefile index cbda4dafb0..de20037110 100644 --- a/Makefile +++ b/Makefile @@ -267,9 +267,4 @@ release: ensure-buildx clean --build-arg VERSION="$(TAG)" \ --build-arg COMMIT_SHA="$(COMMIT_SHA)" \ --build-arg BUILD_ID="$(BUILD_ID)" \ - -t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile-chroot - -.PHONY: build-docs -build-docs: - pip install -r docs/requirements.txt - mkdocs build --config-file mkdocs.yml + -t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile.chroot diff --git a/Makefile_rancher b/Makefile_rancher new file mode 100644 index 0000000000..d7d72a16d5 --- /dev/null +++ b/Makefile_rancher @@ -0,0 +1,23 @@ +TARGETS := $(shell ls scripts) + +.dapper: + @echo Downloading dapper + @curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m` > .dapper.tmp + @@chmod +x .dapper.tmp + @./.dapper.tmp -v + @mv .dapper.tmp .dapper + +$(TARGETS): .dapper + ./.dapper $@ + +trash: .dapper + ./.dapper -m bind trash + +trash-keep: .dapper + ./.dapper -m bind trash -k + +deps: trash + +.DEFAULT_GOAL := ci + +.PHONY: $(TARGETS) diff --git a/internal/k8s/main.go b/internal/k8s/main.go index 5e93e560d6..e4d6c0b6b5 100644 --- a/internal/k8s/main.go +++ b/internal/k8s/main.go @@ -32,6 +32,11 @@ import ( "k8s.io/client-go/tools/cache" ) +const ( + internalAddressAnnotation = "rke.cattle.io/internal-ip" + externalAddressAnnotation = "rke.cattle.io/external-ip" +) + // ParseNameNS parses a string searching a namespace and name func ParseNameNS(input string) (ns, name string, err error) { nsName := strings.Split(input, "/") @@ -64,6 +69,15 @@ func GetNodeIPOrName(kubeClient clientset.Interface, name string, useInternalIP return defaultOrInternalIP } + if node.Annotations != nil { + if annotatedIP := node.Annotations[externalAddressAnnotation]; annotatedIP != "" { + return annotatedIP + } + if annotatedIP := node.Annotations[internalAddressAnnotation]; annotatedIP != "" { + return annotatedIP + } + } + for _, address := range node.Status.Addresses { if address.Type == apiv1.NodeExternalIP { if address.Address != "" { diff --git a/scripts/build b/scripts/build new file mode 100755 index 0000000000..546bfd3929 --- /dev/null +++ b/scripts/build @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +source $(dirname $0)/version + +cd $(dirname $0)/.. + +PKG="k8s.io/ingress-nginx" + +rm -rf bin/* +mkdir -p bin + +declare -a arches=("arm64" "amd64") +for arch in "${arches[@]}" +do + ARCH=$arch DOCKER_IN_DOCKER_ENABLED=true USER=0 make build +done diff --git a/scripts/ci b/scripts/ci new file mode 100755 index 0000000000..b35955a738 --- /dev/null +++ b/scripts/ci @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +cd $(dirname $0) + +./validate +./build +./test +./package diff --git a/scripts/entry b/scripts/entry new file mode 100755 index 0000000000..78fb567905 --- /dev/null +++ b/scripts/entry @@ -0,0 +1,11 @@ +#!/bin/bash +set -e + +mkdir -p bin dist +if [ -e ./scripts/$1 ]; then + ./scripts/"$@" +else + exec "$@" +fi + +chown -R $DAPPER_UID:$DAPPER_GID . diff --git a/scripts/package b/scripts/package new file mode 100755 index 0000000000..0dbc972b07 --- /dev/null +++ b/scripts/package @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +REPO=${REPO:-rancher} + +source $(dirname $0)/version +cd $(dirname $0)/.. + +# manifest push happens as part of make release, so login is required inside the dapper container +echo "$DOCKER_PASS" | docker login -u $DOCKER_USER --password-stdin + +REGISTRY=${REPO} PLATFORMS="arm64 amd64" TAG=${TAG} DOCKER_IN_DOCKER_ENABLED=true USER=0 make release \ No newline at end of file diff --git a/scripts/release b/scripts/release new file mode 100755 index 0000000000..7af0df35fc --- /dev/null +++ b/scripts/release @@ -0,0 +1,3 @@ +#!/bin/bash + +exec $(dirname $0)/ci diff --git a/scripts/test b/scripts/test new file mode 100755 index 0000000000..6363fc3282 --- /dev/null +++ b/scripts/test @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +cd $(dirname $0)/.. + +echo Running tests + +FIND_COMMAND="find" +if [ "$(go env GOHOSTOS)" = "darwin" ]; then + FIND_COMMAND="find ." +fi + +PACKAGES="$($FIND_COMMAND -name '*.go' | xargs -I{} dirname {} | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin|docs|test|controller/store|images|examples|hack)')" + +go test -v -p 1 -tags "cgo" -cover ${PACKAGES} diff --git a/scripts/validate b/scripts/validate new file mode 100755 index 0000000000..8b1f64ba62 --- /dev/null +++ b/scripts/validate @@ -0,0 +1,14 @@ +#!/bin/bash +set -e + +cd $(dirname $0)/.. + +echo Running validation + +PACKAGES="$(go list ./... | grep -v /vendor/)" + +echo Running: go vet +go vet -mod=readonly ${PACKAGES} + +echo Running: go fmt +test -z "$(go fmt -mod=readonly ${PACKAGES} | tee /dev/stderr)" diff --git a/scripts/version b/scripts/version new file mode 100755 index 0000000000..d04d7e66ec --- /dev/null +++ b/scripts/version @@ -0,0 +1,31 @@ +#!/bin/bash + +if [ "$GIT_IN_DAPPER" = true ]; then + git config --global user.email "rancher-ci@rancher.com" + git config --global user.name "rancher-ci" +fi + +if [ -n "$(git status --porcelain --untracked-files=no)" ]; then + DIRTY="-dirty" +fi + +# fetch tag information +git fetch + +GIT_COMMIT=${GIT_COMMIT:-$(git rev-parse --short HEAD)} +GIT_TAG=$(git tag -l --contains HEAD | head -n 1) +REPO_INFO=$(git config --get remote.origin.url) + +if [[ -z "$DIRTY" && -n "$GIT_TAG" ]]; then + VERSION=$GIT_TAG +else + VERSION="${GIT_COMMIT}${DIRTY}" +fi + +if [ -z "$ARCH" ]; then + ARCH=amd64 +fi + +TAG=${TAG:-$VERSION} + +PKG="k8s.io/ingress-nginx" From d157b7fe2ad000720e530a8ec33b510f92ff6e96 Mon Sep 17 00:00:00 2001 From: Daishan Date: Fri, 29 Jan 2021 17:41:53 -0700 Subject: [PATCH 05/41] Update docker version and buildx version --- Dockerfile.dapper | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 3154fa0fcc..488c974884 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,11 +1,11 @@ -FROM docker:19.03.8 +FROM docker:19.03.9 ARG DAPPER_HOST_ARCH ENV ARCH=${DAPPER_HOST_ARCH} RUN mkdir -p /.docker/cli-plugins RUN apk update && apk upgrade && apk add bash && ln -sf /bin/bash /bin/sh # use bash for subsequent variable expansion -ENV DOCKER_BUILDX_URL_arm=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm-v7 \ - DOCKER_BUILDX_URL_arm64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm64 \ - DOCKER_BUILDX_URL_amd64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 \ +ENV DOCKER_BUILDX_URL_arm=https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-arm-v7 \ + DOCKER_BUILDX_URL_arm64=https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-arm64 \ + DOCKER_BUILDX_URL_amd64=https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-amd64 \ DOCKER_BUILDX_URL=DOCKER_BUILDX_URL_${ARCH} RUN wget -O - ${!DOCKER_BUILDX_URL} > /.docker/cli-plugins/docker-buildx && chmod +x /.docker/cli-plugins/docker-buildx From 511cc02fe18bfd03ec8b48ba7699425909413e5f Mon Sep 17 00:00:00 2001 From: Ricardo Weir Date: Tue, 13 Apr 2021 14:41:21 -0700 Subject: [PATCH 06/41] Add push even for debugging --- .drone.yml | 3 ++- scripts/ci | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8271a9e6a9..748e403753 100644 --- a/.drone.yml +++ b/.drone.yml @@ -23,10 +23,11 @@ steps: when: event: - tag + - push instance: - drone-publish.rancher.io volumes: - name: docker host: - path: /var/run/docker.sock \ No newline at end of file + path: /var/run/docker.sock diff --git a/scripts/ci b/scripts/ci index b35955a738..951b54f8f3 100755 --- a/scripts/ci +++ b/scripts/ci @@ -6,4 +6,4 @@ cd $(dirname $0) ./validate ./build ./test -./package +# ./package From d393f958a62a0ffde9de57bbead20c15e84f8a74 Mon Sep 17 00:00:00 2001 From: Ricardo Weir Date: Wed, 14 Apr 2021 12:16:45 -0700 Subject: [PATCH 07/41] Added non-package steps to push and pr events --- .drone.yml | 53 +++++++++++++++++++++++++++++++++++++++++++++-- Dockerfile.dapper | 3 ++- scripts/ci | 2 +- 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 748e403753..d50cb64739 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,7 +7,7 @@ platform: arch: amd64 steps: -- name: build +- name: ci image: rancher/dapper:v0.5.3 commands: - dapper ci @@ -23,9 +23,58 @@ steps: when: event: - tag + instance: + - drone-publish.rancher.io + +- name: validate + image: rancher/dapper:v0.5.3 + commands: + - dapper validate + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: - push + - pull_request instance: - - drone-publish.rancher.io + - drone-pr.rancher.io + + +- name: build + image: rancher/dapper:v0.5.3 + commands: + - dapper build + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io + + +- name: test + image: rancher/dapper:v0.5.3 + commands: + - dapper test + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io volumes: - name: docker diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 488c974884..cf390135ed 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,5 +1,6 @@ FROM docker:19.03.9 ARG DAPPER_HOST_ARCH +ARG STEP=ci ENV ARCH=${DAPPER_HOST_ARCH} RUN mkdir -p /.docker/cli-plugins RUN apk update && apk upgrade && apk add bash && ln -sf /bin/bash /bin/sh # use bash for subsequent variable expansion @@ -41,4 +42,4 @@ ENV GIT_IN_DAPPER true RUN mkdir -p /etc/nginx/geoip WORKDIR ${DAPPER_SOURCE} ENTRYPOINT ["./scripts/entry"] -CMD ["ci"] \ No newline at end of file +CMD [${STEP}] diff --git a/scripts/ci b/scripts/ci index 951b54f8f3..b35955a738 100755 --- a/scripts/ci +++ b/scripts/ci @@ -6,4 +6,4 @@ cd $(dirname $0) ./validate ./build ./test -# ./package +./package From 52508e61ee44c53e6c7b378219e501df9755a880 Mon Sep 17 00:00:00 2001 From: Ricardo Weir Date: Fri, 16 Apr 2021 15:06:08 -0700 Subject: [PATCH 08/41] Add apk-tools first Now, apks-tools package is installed first. Apk-tools needs to finish installing before busybox can succesfully install on arm. Prior, apk-tools would start installing first but frequently busybox would start installing before apk-tools installation finished in drone. Specifically, the trigger script for busybox would fail while building arm image in drone. --- rootfs/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/rootfs/Dockerfile b/rootfs/Dockerfile index 75cf3fc65b..8fc9fd07cf 100644 --- a/rootfs/Dockerfile +++ b/rootfs/Dockerfile @@ -34,6 +34,7 @@ LABEL build_id="${BUILD_ID}" WORKDIR /etc/nginx RUN apk update \ + && apk add apk-tools \ && apk upgrade \ && apk add --no-cache \ diffutils \ From 9fbdd4f8f32440a52dd174db40bb02860c75f77a Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Wed, 5 May 2021 11:20:45 -0700 Subject: [PATCH 09/41] Revert "Add apk-tools first" This reverts commit 3179cfdacf1d7bf6be5cd1cbf6c53d1e5193ca57. --- rootfs/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/rootfs/Dockerfile b/rootfs/Dockerfile index 8fc9fd07cf..75cf3fc65b 100644 --- a/rootfs/Dockerfile +++ b/rootfs/Dockerfile @@ -34,7 +34,6 @@ LABEL build_id="${BUILD_ID}" WORKDIR /etc/nginx RUN apk update \ - && apk add apk-tools \ && apk upgrade \ && apk add --no-cache \ diffutils \ From 3c6064783c1a66a9528b3b486bd982b2156c46e0 Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Wed, 5 May 2021 15:44:18 -0700 Subject: [PATCH 10/41] Fix flaky arm64 emulator issue https://github.com/docker/buildx/issues/542 --- hack/init-buildx.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hack/init-buildx.sh b/hack/init-buildx.sh index 1a47bf145e..b53c407025 100755 --- a/hack/init-buildx.sh +++ b/hack/init-buildx.sh @@ -51,6 +51,15 @@ if ! grep -q "^Driver: docker$" <<<"${current_builder}" && \ exit 0 fi +# Ensure qemu is in binfmt_misc +# Docker desktop already has these in versions recent enough to have buildx +# We only need to do this setup on linux hosts +if [ "$(uname)" == 'Linux' ]; then + # NOTE: this is pinned to a digest for a reason! + # https://github.com/docker/buildx/issues/542#issuecomment-778835576 + docker run --rm --privileged tonistiigi/binfmt --uninstall qemu-aarch64 && docker run --rm --privileged tonistiigi/binfmt --install arm64 + docker run --rm --privileged tonistiigi/binfmt +fi # Ensure we use a builder that can leverage it (the default on linux will not) docker buildx rm ingress-nginx || true From 52ea7ec0f3d63c92dcb9da68a3660d88e1907be8 Mon Sep 17 00:00:00 2001 From: Steven Crespo Date: Fri, 1 Oct 2021 22:51:12 +0200 Subject: [PATCH 11/41] Use Go 1.17.2 and fix golint installation --- Dockerfile.dapper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index cf390135ed..89c16935ff 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,8 +23,8 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://dl.google.com/go/go1.14.1.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ - go get github.com/rancher/trash && go get golang.org/x/lint/golint && go get -u github.com/jteeuwen/go-bindata/... +RUN wget -O - https://golang.org/dl/go1.17.2.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ + curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins COPY --from=0 /.docker/cli-plugins/docker-buildx /.docker/cli-plugins/docker-buildx From bad713cad0a2fc561292fb35a15355a1e7fbc157 Mon Sep 17 00:00:00 2001 From: Steven Crespo Date: Thu, 21 Oct 2021 14:48:26 -0700 Subject: [PATCH 12/41] Remove test step from our CI Remove test step from our CI because it runs the upstream's e2e Go tests incorrectly and fails. Since we don't have any tests of our own, and upstream's CI already runs these tests, this step can be removed. --- .drone.yml | 18 ------------------ scripts/ci | 1 - scripts/test | 15 --------------- 3 files changed, 34 deletions(-) delete mode 100755 scripts/test diff --git a/.drone.yml b/.drone.yml index d50cb64739..fbd5bd2a1a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -42,7 +42,6 @@ steps: instance: - drone-pr.rancher.io - - name: build image: rancher/dapper:v0.5.3 commands: @@ -59,23 +58,6 @@ steps: instance: - drone-pr.rancher.io - -- name: test - image: rancher/dapper:v0.5.3 - commands: - - dapper test - environment: - GIT_IN_DAPPER: true - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - push - - pull_request - instance: - - drone-pr.rancher.io - volumes: - name: docker host: diff --git a/scripts/ci b/scripts/ci index b35955a738..74dcc397db 100755 --- a/scripts/ci +++ b/scripts/ci @@ -5,5 +5,4 @@ cd $(dirname $0) ./validate ./build -./test ./package diff --git a/scripts/test b/scripts/test deleted file mode 100755 index 6363fc3282..0000000000 --- a/scripts/test +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -e - -cd $(dirname $0)/.. - -echo Running tests - -FIND_COMMAND="find" -if [ "$(go env GOHOSTOS)" = "darwin" ]; then - FIND_COMMAND="find ." -fi - -PACKAGES="$($FIND_COMMAND -name '*.go' | xargs -I{} dirname {} | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin|docs|test|controller/store|images|examples|hack)')" - -go test -v -p 1 -tags "cgo" -cover ${PACKAGES} From 353c6c4bcfdb7435580c17c610894916e894a028 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Mon, 14 Feb 2022 16:53:00 +0530 Subject: [PATCH 13/41] removed drone ci add drone's build and validate job in github actions workflow add release workflow which will run only while tagging added git in workflow steps for build and release remove G109 check till gosec resolves issues --- .drone.yml | 64 ------------------------------------------------------ 1 file changed, 64 deletions(-) delete mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index fbd5bd2a1a..0000000000 --- a/.drone.yml +++ /dev/null @@ -1,64 +0,0 @@ ---- -kind: pipeline -name: ci - -platform: - os: linux - arch: amd64 - -steps: -- name: ci - image: rancher/dapper:v0.5.3 - commands: - - dapper ci - environment: - GIT_IN_DAPPER: true - DOCKER_PASS: - from_secret: docker_password - DOCKER_USER: - from_secret: docker_username - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - tag - instance: - - drone-publish.rancher.io - -- name: validate - image: rancher/dapper:v0.5.3 - commands: - - dapper validate - environment: - GIT_IN_DAPPER: true - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - push - - pull_request - instance: - - drone-pr.rancher.io - -- name: build - image: rancher/dapper:v0.5.3 - commands: - - dapper build - environment: - GIT_IN_DAPPER: true - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - push - - pull_request - instance: - - drone-pr.rancher.io - -volumes: -- name: docker - host: - path: /var/run/docker.sock From c0773092a3f15ed9d09f9b0c59a748a45b016cd9 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Wed, 23 Feb 2022 22:43:48 +0530 Subject: [PATCH 14/41] revert back PR #81 --- .drone.yml | 64 ++++++++++++++++++++++++++++++++++ .github/workflows/ci.yaml | 37 -------------------- .github/workflows/release.yaml | 28 --------------- 3 files changed, 64 insertions(+), 65 deletions(-) create mode 100644 .drone.yml delete mode 100644 .github/workflows/release.yaml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000000..a6f55f824a --- /dev/null +++ b/.drone.yml @@ -0,0 +1,64 @@ +--- +kind: pipeline +name: ci + +platform: + os: linux + arch: amd64 + +steps: +- name: ci + image: rancher/dapper:v0.5.3 + commands: + - dapper ci + environment: + GIT_IN_DAPPER: true + DOCKER_PASS: + from_secret: docker_password + DOCKER_USER: + from_secret: docker_username + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - tag + instance: + - drone-publish.rancher.io + +- name: validate + image: rancher/dapper:v0.5.3 + commands: + - dapper validate + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io + +- name: build + image: rancher/dapper:v0.5.3 + commands: + - dapper build + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io + +volumes: +- name: docker + host: + path: /var/run/docker.sock \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a48a577c4c..264aad324a 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -509,40 +509,3 @@ jobs: if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }} run: | cd images/kube-webhook-certgen && make test test-e2e - - rancher-validate: - runs-on: ubuntu-latest - env: - PLATFORMS: linux/amd64 - container: - image: rancher/dapper:v0.5.3 - env: - GIT_IN_DAPPER: true - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: validate - run: | - dapper validate - - rancher-build: - needs: rancher-validate - runs-on: ubuntu-latest - env: - PLATFORMS: linux/amd64 - container: - image: rancher/dapper:v0.5.3 - env: - GIT_IN_DAPPER: true - steps: - - name: Install git - run: | - apk add --no-cache git - - - name: Checkout - uses: actions/checkout@v2 - - - name: build - run: | - dapper build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index e8619317ff..0000000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: release - -on: - push: - tags: - - '*' - -jobs: - - rancher-ci: - runs-on: ubuntu-latest - container: - image: rancher/dapper:v0.5.3 - env: - GIT_IN_DAPPER: true - DOCKER_USER: ${{ secrets.docker_username }} - DOCKER_PASS: ${{ secrets.docker_password }} - steps: - - name: Add git - run: | - apk add --no-cache git - - - name: Checkout - uses: actions/checkout@v2 - - - name: tag - run: | - dapper ci From d03ff990d54e78f6c96de4c829e077abe5c545ee Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Thu, 21 Apr 2022 20:26:38 +0530 Subject: [PATCH 15/41] remove depreview action --- .github/workflows/depreview.yaml | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 .github/workflows/depreview.yaml diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml deleted file mode 100644 index df004169f4..0000000000 --- a/.github/workflows/depreview.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: 'Dependency Review' -on: [pull_request] - -permissions: - contents: read - -jobs: - dependency-review: - runs-on: ubuntu-latest - steps: - - name: 'Checkout Repository' - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: 'Dependency Review' - uses: actions/dependency-review-action@6c5ccdad469c9f8a2996bfecaec55a631a347034 # v3.1.0 From 373747309c44d6518941fdcdf10ed2b59a42bfef Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Mon, 25 Apr 2022 19:03:17 +0530 Subject: [PATCH 16/41] use rancher's repository image --- Makefile | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/Makefile b/Makefile index de20037110..85de294725 100644 --- a/Makefile +++ b/Makefile @@ -254,17 +254,5 @@ release: ensure-buildx clean --build-arg VERSION="$(TAG)" \ --build-arg COMMIT_SHA="$(COMMIT_SHA)" \ --build-arg BUILD_ID="$(BUILD_ID)" \ - -t $(REGISTRY)/controller:$(TAG) rootfs + -t $(REGISTRY)/nginx-ingress-controller:$(TAG) rootfs - docker buildx build \ - --no-cache \ - $(MAC_DOCKER_FLAGS) \ - --push \ - --pull \ - --progress plain \ - --platform $(BUILDX_PLATFORMS) \ - --build-arg BASE_IMAGE="$(BASE_IMAGE)" \ - --build-arg VERSION="$(TAG)" \ - --build-arg COMMIT_SHA="$(COMMIT_SHA)" \ - --build-arg BUILD_ID="$(BUILD_ID)" \ - -t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile.chroot From 26e1c25d7b6b738dc0d3c052e4341455ce85e8ff Mon Sep 17 00:00:00 2001 From: Sameer Kulkarni Date: Fri, 10 Jun 2022 15:26:17 +0530 Subject: [PATCH 17/41] fix drone build failure `go install ginkgo` followed by `which ginkgo` is newly added in the upstream repo. This is making the drone build fail for arm64 arch. The ginkgo library gets installed under $GOPATH/bin/linux_arm64 dir. This is unlike amd64 images which typically install go libraries under $GOPATH/bin. Since the previously mentioned dir is not in PATH, the command `which ginkgo` fails. I've added this location to PATH to fix the build failure. See upstream PRs linked below for more info: https://github.com/kubernetes/ingress-nginx/pull/8566 https://github.com/kubernetes/ingress-nginx/pull/8569 --- build/run-in-docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/run-in-docker.sh b/build/run-in-docker.sh index bec8252916..d2e7f076ae 100755 --- a/build/run-in-docker.sh +++ b/build/run-in-docker.sh @@ -89,6 +89,7 @@ if [[ "$DOCKER_IN_DOCKER_ENABLED" == "true" ]]; then #go env go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.13.0 find / -type f -name ginkgo 2>/dev/null + PATH=$PATH:$GOPATH/bin/linux_arm64 which ginkgo /bin/bash -c "${FLAGS}" else From e2ea40e3d944e4dbb19c0a1a92276eabad19d8b0 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Fri, 20 Jan 2023 16:16:28 +0530 Subject: [PATCH 18/41] use go 1.19.5 --- Dockerfile.dapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 89c16935ff..01188561f2 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,7 +23,7 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://golang.org/dl/go1.17.2.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ +RUN wget -O - https://golang.org/dl/go1.19.5.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins From cc8767aeb7dc645f9fb023c8f870a97d0b764bcf Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Fri, 27 Jan 2023 19:20:33 +0530 Subject: [PATCH 19/41] Add arm and s390x in the arches in scripts/build. only amd64 and arm64 was in arches because of this the CI wasn't able to find the following files with not found error. /bin/arm/nginx-ingress-controller, /bin/arm/wait-shutdown and /bin/arm/dbg --- scripts/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build b/scripts/build index 546bfd3929..86e835caa6 100755 --- a/scripts/build +++ b/scripts/build @@ -10,7 +10,7 @@ PKG="k8s.io/ingress-nginx" rm -rf bin/* mkdir -p bin -declare -a arches=("arm64" "amd64") +declare -a arches=("arm64" "amd64" "arm" "s390x") for arch in "${arches[@]}" do ARCH=$arch DOCKER_IN_DOCKER_ENABLED=true USER=0 make build From d1b8c1eb96811b089f16f2bc47fbe889bf300d2e Mon Sep 17 00:00:00 2001 From: vardhaman22 Date: Fri, 27 Oct 2023 13:59:09 +0530 Subject: [PATCH 20/41] use go 1.21.3 --- Dockerfile.dapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 01188561f2..63cfa73511 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,7 +23,7 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://golang.org/dl/go1.19.5.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ +RUN wget -O - https://golang.org/dl/go1.21.3.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins From f2a5ed0c50d54b69509ba77ce97b57b8e977a365 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Mon, 14 Feb 2022 16:56:21 +0530 Subject: [PATCH 21/41] add drone's build and validate job in github actions workflow --- .github/workflows/ci.yaml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index f14d9ff72e..a8af943ad4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -518,3 +518,35 @@ jobs: run: | cd images/kube-webhook-certgen && make test test-e2e + rancher-validate: + runs-on: ubuntu-latest + env: + PLATFORMS: linux/amd64 + container: + image: rancher/dapper:v0.5.3 + env: + GIT_IN_DAPPER: true + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: validate + run: | + dapper validate + + rancher-build: + needs: rancher-validate + runs-on: ubuntu-latest + env: + PLATFORMS: linux/amd64 + container: + image: rancher/dapper:v0.5.3 + env: + GIT_IN_DAPPER: true + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: build + run: | + dapper build From 745dd4dc3dfb1b5da82da1afdf630e6a9226dc79 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Mon, 14 Feb 2022 18:25:38 +0530 Subject: [PATCH 22/41] add release workflow which will run only while tagging --- .github/workflows/release.yaml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000000..ca2774dbe4 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,24 @@ +name: release + +on: + push: + tags: + - '*' + +jobs: + + rancher-ci: + runs-on: ubuntu-latest + container: + image: rancher/dapper:v0.5.3 + env: + GIT_IN_DAPPER: true + DOCKER_USER: ${{ secrets.docker_username }} + DOCKER_PASS: ${{ secrets.docker_password }} + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: tag + run: | + dapper ci \ No newline at end of file From f731f88d2980682fe19690483e17f73ec8f036e9 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Wed, 16 Feb 2022 19:12:30 +0530 Subject: [PATCH 23/41] added git in workflow steps for build and release --- .github/workflows/ci.yaml | 4 ++++ .github/workflows/release.yaml | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a8af943ad4..a4d2efa74d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -544,6 +544,10 @@ jobs: env: GIT_IN_DAPPER: true steps: + - name: Install git + run: | + apk add --no-cache git + - name: Checkout uses: actions/checkout@v2 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index ca2774dbe4..e8619317ff 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -2,8 +2,8 @@ name: release on: push: - tags: - - '*' + tags: + - '*' jobs: @@ -16,9 +16,13 @@ jobs: DOCKER_USER: ${{ secrets.docker_username }} DOCKER_PASS: ${{ secrets.docker_password }} steps: + - name: Add git + run: | + apk add --no-cache git + - name: Checkout uses: actions/checkout@v2 - name: tag run: | - dapper ci \ No newline at end of file + dapper ci From b4ae9117720c61767f2fdcd0cb0bece90429d6fb Mon Sep 17 00:00:00 2001 From: Ryan Sanna Date: Thu, 7 May 2020 16:08:55 -0700 Subject: [PATCH 24/41] cherry pick commits: f3277463565ce64284d96aa659b5d0d11c17f058, b8966a64f5244c7a90cbd2282157db2838a508af refactor rancher build process due to upstream changes --- .drone.yml | 32 ++++++++++++++++++++++++++++++++ .gitignore | 5 ++++- Dockerfile.dapper | 44 ++++++++++++++++++++++++++++++++++++++++++++ Makefile | 7 +------ Makefile_rancher | 23 +++++++++++++++++++++++ internal/k8s/main.go | 14 ++++++++++++++ scripts/build | 17 +++++++++++++++++ scripts/ci | 9 +++++++++ scripts/entry | 11 +++++++++++ scripts/package | 12 ++++++++++++ scripts/release | 3 +++ scripts/test | 15 +++++++++++++++ scripts/validate | 14 ++++++++++++++ scripts/version | 31 +++++++++++++++++++++++++++++++ 14 files changed, 230 insertions(+), 7 deletions(-) create mode 100644 .drone.yml create mode 100644 Dockerfile.dapper create mode 100644 Makefile_rancher create mode 100755 scripts/build create mode 100755 scripts/ci create mode 100755 scripts/entry create mode 100755 scripts/package create mode 100755 scripts/release create mode 100755 scripts/test create mode 100755 scripts/validate create mode 100755 scripts/version diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000000..8271a9e6a9 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,32 @@ +--- +kind: pipeline +name: ci + +platform: + os: linux + arch: amd64 + +steps: +- name: build + image: rancher/dapper:v0.5.3 + commands: + - dapper ci + environment: + GIT_IN_DAPPER: true + DOCKER_PASS: + from_secret: docker_password + DOCKER_USER: + from_secret: docker_username + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - tag + instance: + - drone-publish.rancher.io + +volumes: +- name: docker + host: + path: /var/run/docker.sock \ No newline at end of file diff --git a/.gitignore b/.gitignore index 73108f6274..16c4188ddf 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,7 @@ cmd/plugin/release/*.tar.gz cmd/plugin/release/LICENSE tmp/ test/junitreports/ -tests/__snapshot__ + +# rancher ci +.dapper +/dist/ diff --git a/Dockerfile.dapper b/Dockerfile.dapper new file mode 100644 index 0000000000..3154fa0fcc --- /dev/null +++ b/Dockerfile.dapper @@ -0,0 +1,44 @@ +FROM docker:19.03.8 +ARG DAPPER_HOST_ARCH +ENV ARCH=${DAPPER_HOST_ARCH} +RUN mkdir -p /.docker/cli-plugins +RUN apk update && apk upgrade && apk add bash && ln -sf /bin/bash /bin/sh # use bash for subsequent variable expansion +ENV DOCKER_BUILDX_URL_arm=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm-v7 \ + DOCKER_BUILDX_URL_arm64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm64 \ + DOCKER_BUILDX_URL_amd64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 \ + DOCKER_BUILDX_URL=DOCKER_BUILDX_URL_${ARCH} +RUN wget -O - ${!DOCKER_BUILDX_URL} > /.docker/cli-plugins/docker-buildx && chmod +x /.docker/cli-plugins/docker-buildx + +FROM ubuntu:18.04 +ARG DAPPER_HOST_ARCH +ARG DOCKER_USER +ARG DOCKER_PASS +ENV HOST_ARCH=${DAPPER_HOST_ARCH} \ + ARCH=${DAPPER_HOST_ARCH} \ + DOCKER_USER=${DOCKER_USER} \ + DOCKER_PASS=${DOCKER_PASS} +RUN apt-get update && \ + apt-get install -y gcc ca-certificates git wget curl vim less file zip make && \ + rm -f /bin/sh && ln -s /bin/bash /bin/sh +ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ + GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash +RUN wget -O - https://dl.google.com/go/go1.14.1.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ + go get github.com/rancher/trash && go get golang.org/x/lint/golint && go get -u github.com/jteeuwen/go-bindata/... +COPY --from=0 /usr/local/bin/docker /usr/bin/docker +RUN mkdir -p /.docker/cli-plugins +COPY --from=0 /.docker/cli-plugins/docker-buildx /.docker/cli-plugins/docker-buildx +ENV DOCKER_CLI_EXPERIMENTAL=enabled \ + DOCKER_CONFIG=/.docker +RUN docker buildx install +ENV DAPPER_SOURCE /go/src/k8s.io/ingress-nginx/ +ENV DAPPER_OUTPUT ./bin ./dist +ENV DAPPER_DOCKER_SOCKET true +ENV DAPPER_ENV CROSS TAG +ENV DAPPER_RUN_ARGS="--net host" +ENV TRASH_CACHE ${DAPPER_SOURCE}/.trash-cache +ENV HOME ${DAPPER_SOURCE} +ENV GIT_IN_DAPPER true +RUN mkdir -p /etc/nginx/geoip +WORKDIR ${DAPPER_SOURCE} +ENTRYPOINT ["./scripts/entry"] +CMD ["ci"] \ No newline at end of file diff --git a/Makefile b/Makefile index cbda4dafb0..de20037110 100644 --- a/Makefile +++ b/Makefile @@ -267,9 +267,4 @@ release: ensure-buildx clean --build-arg VERSION="$(TAG)" \ --build-arg COMMIT_SHA="$(COMMIT_SHA)" \ --build-arg BUILD_ID="$(BUILD_ID)" \ - -t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile-chroot - -.PHONY: build-docs -build-docs: - pip install -r docs/requirements.txt - mkdocs build --config-file mkdocs.yml + -t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile.chroot diff --git a/Makefile_rancher b/Makefile_rancher new file mode 100644 index 0000000000..d7d72a16d5 --- /dev/null +++ b/Makefile_rancher @@ -0,0 +1,23 @@ +TARGETS := $(shell ls scripts) + +.dapper: + @echo Downloading dapper + @curl -sL https://releases.rancher.com/dapper/latest/dapper-`uname -s`-`uname -m` > .dapper.tmp + @@chmod +x .dapper.tmp + @./.dapper.tmp -v + @mv .dapper.tmp .dapper + +$(TARGETS): .dapper + ./.dapper $@ + +trash: .dapper + ./.dapper -m bind trash + +trash-keep: .dapper + ./.dapper -m bind trash -k + +deps: trash + +.DEFAULT_GOAL := ci + +.PHONY: $(TARGETS) diff --git a/internal/k8s/main.go b/internal/k8s/main.go index 5e93e560d6..e4d6c0b6b5 100644 --- a/internal/k8s/main.go +++ b/internal/k8s/main.go @@ -32,6 +32,11 @@ import ( "k8s.io/client-go/tools/cache" ) +const ( + internalAddressAnnotation = "rke.cattle.io/internal-ip" + externalAddressAnnotation = "rke.cattle.io/external-ip" +) + // ParseNameNS parses a string searching a namespace and name func ParseNameNS(input string) (ns, name string, err error) { nsName := strings.Split(input, "/") @@ -64,6 +69,15 @@ func GetNodeIPOrName(kubeClient clientset.Interface, name string, useInternalIP return defaultOrInternalIP } + if node.Annotations != nil { + if annotatedIP := node.Annotations[externalAddressAnnotation]; annotatedIP != "" { + return annotatedIP + } + if annotatedIP := node.Annotations[internalAddressAnnotation]; annotatedIP != "" { + return annotatedIP + } + } + for _, address := range node.Status.Addresses { if address.Type == apiv1.NodeExternalIP { if address.Address != "" { diff --git a/scripts/build b/scripts/build new file mode 100755 index 0000000000..546bfd3929 --- /dev/null +++ b/scripts/build @@ -0,0 +1,17 @@ +#!/bin/bash +set -e + +source $(dirname $0)/version + +cd $(dirname $0)/.. + +PKG="k8s.io/ingress-nginx" + +rm -rf bin/* +mkdir -p bin + +declare -a arches=("arm64" "amd64") +for arch in "${arches[@]}" +do + ARCH=$arch DOCKER_IN_DOCKER_ENABLED=true USER=0 make build +done diff --git a/scripts/ci b/scripts/ci new file mode 100755 index 0000000000..b35955a738 --- /dev/null +++ b/scripts/ci @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +cd $(dirname $0) + +./validate +./build +./test +./package diff --git a/scripts/entry b/scripts/entry new file mode 100755 index 0000000000..78fb567905 --- /dev/null +++ b/scripts/entry @@ -0,0 +1,11 @@ +#!/bin/bash +set -e + +mkdir -p bin dist +if [ -e ./scripts/$1 ]; then + ./scripts/"$@" +else + exec "$@" +fi + +chown -R $DAPPER_UID:$DAPPER_GID . diff --git a/scripts/package b/scripts/package new file mode 100755 index 0000000000..0dbc972b07 --- /dev/null +++ b/scripts/package @@ -0,0 +1,12 @@ +#!/bin/bash +set -e + +REPO=${REPO:-rancher} + +source $(dirname $0)/version +cd $(dirname $0)/.. + +# manifest push happens as part of make release, so login is required inside the dapper container +echo "$DOCKER_PASS" | docker login -u $DOCKER_USER --password-stdin + +REGISTRY=${REPO} PLATFORMS="arm64 amd64" TAG=${TAG} DOCKER_IN_DOCKER_ENABLED=true USER=0 make release \ No newline at end of file diff --git a/scripts/release b/scripts/release new file mode 100755 index 0000000000..7af0df35fc --- /dev/null +++ b/scripts/release @@ -0,0 +1,3 @@ +#!/bin/bash + +exec $(dirname $0)/ci diff --git a/scripts/test b/scripts/test new file mode 100755 index 0000000000..6363fc3282 --- /dev/null +++ b/scripts/test @@ -0,0 +1,15 @@ +#!/bin/bash +set -e + +cd $(dirname $0)/.. + +echo Running tests + +FIND_COMMAND="find" +if [ "$(go env GOHOSTOS)" = "darwin" ]; then + FIND_COMMAND="find ." +fi + +PACKAGES="$($FIND_COMMAND -name '*.go' | xargs -I{} dirname {} | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin|docs|test|controller/store|images|examples|hack)')" + +go test -v -p 1 -tags "cgo" -cover ${PACKAGES} diff --git a/scripts/validate b/scripts/validate new file mode 100755 index 0000000000..8b1f64ba62 --- /dev/null +++ b/scripts/validate @@ -0,0 +1,14 @@ +#!/bin/bash +set -e + +cd $(dirname $0)/.. + +echo Running validation + +PACKAGES="$(go list ./... | grep -v /vendor/)" + +echo Running: go vet +go vet -mod=readonly ${PACKAGES} + +echo Running: go fmt +test -z "$(go fmt -mod=readonly ${PACKAGES} | tee /dev/stderr)" diff --git a/scripts/version b/scripts/version new file mode 100755 index 0000000000..d04d7e66ec --- /dev/null +++ b/scripts/version @@ -0,0 +1,31 @@ +#!/bin/bash + +if [ "$GIT_IN_DAPPER" = true ]; then + git config --global user.email "rancher-ci@rancher.com" + git config --global user.name "rancher-ci" +fi + +if [ -n "$(git status --porcelain --untracked-files=no)" ]; then + DIRTY="-dirty" +fi + +# fetch tag information +git fetch + +GIT_COMMIT=${GIT_COMMIT:-$(git rev-parse --short HEAD)} +GIT_TAG=$(git tag -l --contains HEAD | head -n 1) +REPO_INFO=$(git config --get remote.origin.url) + +if [[ -z "$DIRTY" && -n "$GIT_TAG" ]]; then + VERSION=$GIT_TAG +else + VERSION="${GIT_COMMIT}${DIRTY}" +fi + +if [ -z "$ARCH" ]; then + ARCH=amd64 +fi + +TAG=${TAG:-$VERSION} + +PKG="k8s.io/ingress-nginx" From 72e09b7e22f1fa32a1ae06fcb89cec88805af1f0 Mon Sep 17 00:00:00 2001 From: Daishan Date: Fri, 29 Jan 2021 17:41:53 -0700 Subject: [PATCH 25/41] Update docker version and buildx version --- Dockerfile.dapper | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 3154fa0fcc..488c974884 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,11 +1,11 @@ -FROM docker:19.03.8 +FROM docker:19.03.9 ARG DAPPER_HOST_ARCH ENV ARCH=${DAPPER_HOST_ARCH} RUN mkdir -p /.docker/cli-plugins RUN apk update && apk upgrade && apk add bash && ln -sf /bin/bash /bin/sh # use bash for subsequent variable expansion -ENV DOCKER_BUILDX_URL_arm=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm-v7 \ - DOCKER_BUILDX_URL_arm64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-arm64 \ - DOCKER_BUILDX_URL_amd64=https://github.com/docker/buildx/releases/download/v0.3.1/buildx-v0.3.1.linux-amd64 \ +ENV DOCKER_BUILDX_URL_arm=https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-arm-v7 \ + DOCKER_BUILDX_URL_arm64=https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-arm64 \ + DOCKER_BUILDX_URL_amd64=https://github.com/docker/buildx/releases/download/v0.5.1/buildx-v0.5.1.linux-amd64 \ DOCKER_BUILDX_URL=DOCKER_BUILDX_URL_${ARCH} RUN wget -O - ${!DOCKER_BUILDX_URL} > /.docker/cli-plugins/docker-buildx && chmod +x /.docker/cli-plugins/docker-buildx From 2d3289f1e51c32fdcfe5715cd8bbd84173dd806a Mon Sep 17 00:00:00 2001 From: Ricardo Weir Date: Tue, 13 Apr 2021 14:41:21 -0700 Subject: [PATCH 26/41] Add push even for debugging --- .drone.yml | 3 ++- scripts/ci | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 8271a9e6a9..748e403753 100644 --- a/.drone.yml +++ b/.drone.yml @@ -23,10 +23,11 @@ steps: when: event: - tag + - push instance: - drone-publish.rancher.io volumes: - name: docker host: - path: /var/run/docker.sock \ No newline at end of file + path: /var/run/docker.sock diff --git a/scripts/ci b/scripts/ci index b35955a738..951b54f8f3 100755 --- a/scripts/ci +++ b/scripts/ci @@ -6,4 +6,4 @@ cd $(dirname $0) ./validate ./build ./test -./package +# ./package From 5c28bc09a5fd3d52b8790bd37f31b97c48d92f0e Mon Sep 17 00:00:00 2001 From: Ricardo Weir Date: Wed, 14 Apr 2021 12:16:45 -0700 Subject: [PATCH 27/41] Added non-package steps to push and pr events --- .drone.yml | 53 +++++++++++++++++++++++++++++++++++++++++++++-- Dockerfile.dapper | 3 ++- scripts/ci | 2 +- 3 files changed, 54 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index 748e403753..d50cb64739 100644 --- a/.drone.yml +++ b/.drone.yml @@ -7,7 +7,7 @@ platform: arch: amd64 steps: -- name: build +- name: ci image: rancher/dapper:v0.5.3 commands: - dapper ci @@ -23,9 +23,58 @@ steps: when: event: - tag + instance: + - drone-publish.rancher.io + +- name: validate + image: rancher/dapper:v0.5.3 + commands: + - dapper validate + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: - push + - pull_request instance: - - drone-publish.rancher.io + - drone-pr.rancher.io + + +- name: build + image: rancher/dapper:v0.5.3 + commands: + - dapper build + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io + + +- name: test + image: rancher/dapper:v0.5.3 + commands: + - dapper test + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io volumes: - name: docker diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 488c974884..cf390135ed 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,5 +1,6 @@ FROM docker:19.03.9 ARG DAPPER_HOST_ARCH +ARG STEP=ci ENV ARCH=${DAPPER_HOST_ARCH} RUN mkdir -p /.docker/cli-plugins RUN apk update && apk upgrade && apk add bash && ln -sf /bin/bash /bin/sh # use bash for subsequent variable expansion @@ -41,4 +42,4 @@ ENV GIT_IN_DAPPER true RUN mkdir -p /etc/nginx/geoip WORKDIR ${DAPPER_SOURCE} ENTRYPOINT ["./scripts/entry"] -CMD ["ci"] \ No newline at end of file +CMD [${STEP}] diff --git a/scripts/ci b/scripts/ci index 951b54f8f3..b35955a738 100755 --- a/scripts/ci +++ b/scripts/ci @@ -6,4 +6,4 @@ cd $(dirname $0) ./validate ./build ./test -# ./package +./package From 06cdc016d65b2a2b457145cac6001921df854777 Mon Sep 17 00:00:00 2001 From: Ricardo Weir Date: Fri, 16 Apr 2021 15:06:08 -0700 Subject: [PATCH 28/41] Add apk-tools first Now, apks-tools package is installed first. Apk-tools needs to finish installing before busybox can succesfully install on arm. Prior, apk-tools would start installing first but frequently busybox would start installing before apk-tools installation finished in drone. Specifically, the trigger script for busybox would fail while building arm image in drone. --- rootfs/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/rootfs/Dockerfile b/rootfs/Dockerfile index 86517c6c16..927bf4f258 100644 --- a/rootfs/Dockerfile +++ b/rootfs/Dockerfile @@ -34,6 +34,7 @@ LABEL build_id="${BUILD_ID}" WORKDIR /etc/nginx RUN apk update \ + && apk add apk-tools \ && apk upgrade \ && apk add --no-cache \ diffutils \ From 2868ab1e659829251cda204971b69b281c7e2fff Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Wed, 5 May 2021 11:20:45 -0700 Subject: [PATCH 29/41] Revert "Add apk-tools first" This reverts commit 3179cfdacf1d7bf6be5cd1cbf6c53d1e5193ca57. --- rootfs/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/rootfs/Dockerfile b/rootfs/Dockerfile index 927bf4f258..86517c6c16 100644 --- a/rootfs/Dockerfile +++ b/rootfs/Dockerfile @@ -34,7 +34,6 @@ LABEL build_id="${BUILD_ID}" WORKDIR /etc/nginx RUN apk update \ - && apk add apk-tools \ && apk upgrade \ && apk add --no-cache \ diffutils \ From ccbd0b768ae4e15e0b67bbdb41afe96563c1a761 Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Wed, 5 May 2021 15:44:18 -0700 Subject: [PATCH 30/41] Fix flaky arm64 emulator issue https://github.com/docker/buildx/issues/542 --- hack/init-buildx.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hack/init-buildx.sh b/hack/init-buildx.sh index 1a47bf145e..b53c407025 100755 --- a/hack/init-buildx.sh +++ b/hack/init-buildx.sh @@ -51,6 +51,15 @@ if ! grep -q "^Driver: docker$" <<<"${current_builder}" && \ exit 0 fi +# Ensure qemu is in binfmt_misc +# Docker desktop already has these in versions recent enough to have buildx +# We only need to do this setup on linux hosts +if [ "$(uname)" == 'Linux' ]; then + # NOTE: this is pinned to a digest for a reason! + # https://github.com/docker/buildx/issues/542#issuecomment-778835576 + docker run --rm --privileged tonistiigi/binfmt --uninstall qemu-aarch64 && docker run --rm --privileged tonistiigi/binfmt --install arm64 + docker run --rm --privileged tonistiigi/binfmt +fi # Ensure we use a builder that can leverage it (the default on linux will not) docker buildx rm ingress-nginx || true From 7d3b7cd9cc61dcc55f5fcc01d03c323612efa21b Mon Sep 17 00:00:00 2001 From: Steven Crespo Date: Fri, 1 Oct 2021 22:51:12 +0200 Subject: [PATCH 31/41] Use Go 1.17.2 and fix golint installation --- Dockerfile.dapper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index cf390135ed..89c16935ff 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,8 +23,8 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://dl.google.com/go/go1.14.1.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ - go get github.com/rancher/trash && go get golang.org/x/lint/golint && go get -u github.com/jteeuwen/go-bindata/... +RUN wget -O - https://golang.org/dl/go1.17.2.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ + curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins COPY --from=0 /.docker/cli-plugins/docker-buildx /.docker/cli-plugins/docker-buildx From fcb8c56501e484ba8b7edc1d5c9cc03ca68eaed6 Mon Sep 17 00:00:00 2001 From: Steven Crespo Date: Thu, 21 Oct 2021 14:48:26 -0700 Subject: [PATCH 32/41] Remove test step from our CI Remove test step from our CI because it runs the upstream's e2e Go tests incorrectly and fails. Since we don't have any tests of our own, and upstream's CI already runs these tests, this step can be removed. --- .drone.yml | 18 ------------------ scripts/ci | 1 - scripts/test | 15 --------------- 3 files changed, 34 deletions(-) delete mode 100755 scripts/test diff --git a/.drone.yml b/.drone.yml index d50cb64739..fbd5bd2a1a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -42,7 +42,6 @@ steps: instance: - drone-pr.rancher.io - - name: build image: rancher/dapper:v0.5.3 commands: @@ -59,23 +58,6 @@ steps: instance: - drone-pr.rancher.io - -- name: test - image: rancher/dapper:v0.5.3 - commands: - - dapper test - environment: - GIT_IN_DAPPER: true - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - push - - pull_request - instance: - - drone-pr.rancher.io - volumes: - name: docker host: diff --git a/scripts/ci b/scripts/ci index b35955a738..74dcc397db 100755 --- a/scripts/ci +++ b/scripts/ci @@ -5,5 +5,4 @@ cd $(dirname $0) ./validate ./build -./test ./package diff --git a/scripts/test b/scripts/test deleted file mode 100755 index 6363fc3282..0000000000 --- a/scripts/test +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash -set -e - -cd $(dirname $0)/.. - -echo Running tests - -FIND_COMMAND="find" -if [ "$(go env GOHOSTOS)" = "darwin" ]; then - FIND_COMMAND="find ." -fi - -PACKAGES="$($FIND_COMMAND -name '*.go' | xargs -I{} dirname {} | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin|docs|test|controller/store|images|examples|hack)')" - -go test -v -p 1 -tags "cgo" -cover ${PACKAGES} From 2a3541e6df28ba7ce9b1dbb045694bd215431438 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Mon, 14 Feb 2022 16:53:00 +0530 Subject: [PATCH 33/41] removed drone ci add drone's build and validate job in github actions workflow add release workflow which will run only while tagging added git in workflow steps for build and release remove G109 check till gosec resolves issues --- .drone.yml | 64 ------------------------------------------------------ 1 file changed, 64 deletions(-) delete mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml deleted file mode 100644 index fbd5bd2a1a..0000000000 --- a/.drone.yml +++ /dev/null @@ -1,64 +0,0 @@ ---- -kind: pipeline -name: ci - -platform: - os: linux - arch: amd64 - -steps: -- name: ci - image: rancher/dapper:v0.5.3 - commands: - - dapper ci - environment: - GIT_IN_DAPPER: true - DOCKER_PASS: - from_secret: docker_password - DOCKER_USER: - from_secret: docker_username - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - tag - instance: - - drone-publish.rancher.io - -- name: validate - image: rancher/dapper:v0.5.3 - commands: - - dapper validate - environment: - GIT_IN_DAPPER: true - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - push - - pull_request - instance: - - drone-pr.rancher.io - -- name: build - image: rancher/dapper:v0.5.3 - commands: - - dapper build - environment: - GIT_IN_DAPPER: true - volumes: - - name: docker - path: /var/run/docker.sock - when: - event: - - push - - pull_request - instance: - - drone-pr.rancher.io - -volumes: -- name: docker - host: - path: /var/run/docker.sock From 64c9aaca5b6e83eeafc91fb86bc3fd588068771d Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Wed, 23 Feb 2022 22:43:48 +0530 Subject: [PATCH 34/41] revert back PR #81 --- .drone.yml | 64 ++++++++++++++++++++++++++++++++++ .github/workflows/ci.yaml | 37 -------------------- .github/workflows/release.yaml | 28 --------------- 3 files changed, 64 insertions(+), 65 deletions(-) create mode 100644 .drone.yml delete mode 100644 .github/workflows/release.yaml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000000..a6f55f824a --- /dev/null +++ b/.drone.yml @@ -0,0 +1,64 @@ +--- +kind: pipeline +name: ci + +platform: + os: linux + arch: amd64 + +steps: +- name: ci + image: rancher/dapper:v0.5.3 + commands: + - dapper ci + environment: + GIT_IN_DAPPER: true + DOCKER_PASS: + from_secret: docker_password + DOCKER_USER: + from_secret: docker_username + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - tag + instance: + - drone-publish.rancher.io + +- name: validate + image: rancher/dapper:v0.5.3 + commands: + - dapper validate + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io + +- name: build + image: rancher/dapper:v0.5.3 + commands: + - dapper build + environment: + GIT_IN_DAPPER: true + volumes: + - name: docker + path: /var/run/docker.sock + when: + event: + - push + - pull_request + instance: + - drone-pr.rancher.io + +volumes: +- name: docker + host: + path: /var/run/docker.sock \ No newline at end of file diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a4d2efa74d..703f62eaf9 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -517,40 +517,3 @@ jobs: if: ${{ steps.filter-images.outputs.kube-webhook-certgen == 'true' }} run: | cd images/kube-webhook-certgen && make test test-e2e - - rancher-validate: - runs-on: ubuntu-latest - env: - PLATFORMS: linux/amd64 - container: - image: rancher/dapper:v0.5.3 - env: - GIT_IN_DAPPER: true - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: validate - run: | - dapper validate - - rancher-build: - needs: rancher-validate - runs-on: ubuntu-latest - env: - PLATFORMS: linux/amd64 - container: - image: rancher/dapper:v0.5.3 - env: - GIT_IN_DAPPER: true - steps: - - name: Install git - run: | - apk add --no-cache git - - - name: Checkout - uses: actions/checkout@v2 - - - name: build - run: | - dapper build diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index e8619317ff..0000000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,28 +0,0 @@ -name: release - -on: - push: - tags: - - '*' - -jobs: - - rancher-ci: - runs-on: ubuntu-latest - container: - image: rancher/dapper:v0.5.3 - env: - GIT_IN_DAPPER: true - DOCKER_USER: ${{ secrets.docker_username }} - DOCKER_PASS: ${{ secrets.docker_password }} - steps: - - name: Add git - run: | - apk add --no-cache git - - - name: Checkout - uses: actions/checkout@v2 - - - name: tag - run: | - dapper ci From b01e8e8131243a5cab863eb9e80cc4b852b8e068 Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Thu, 21 Apr 2022 20:26:38 +0530 Subject: [PATCH 35/41] remove depreview action --- .github/workflows/depreview.yaml | 14 -------------- 1 file changed, 14 deletions(-) delete mode 100644 .github/workflows/depreview.yaml diff --git a/.github/workflows/depreview.yaml b/.github/workflows/depreview.yaml deleted file mode 100644 index 3cd461417f..0000000000 --- a/.github/workflows/depreview.yaml +++ /dev/null @@ -1,14 +0,0 @@ -name: 'Dependency Review' -on: [pull_request] - -permissions: - contents: read - -jobs: - dependency-review: - runs-on: ubuntu-latest - steps: - - name: 'Checkout Repository' - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - - name: 'Dependency Review' - uses: actions/dependency-review-action@01bc87099ba56df1e897b6874784491ea6309bc4 # v3.1.4 From 80f03831ff1585600cefaec024cd95b681008e04 Mon Sep 17 00:00:00 2001 From: Kinara Shah Date: Mon, 25 Apr 2022 19:03:17 +0530 Subject: [PATCH 36/41] use rancher's repository image --- Makefile | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/Makefile b/Makefile index de20037110..85de294725 100644 --- a/Makefile +++ b/Makefile @@ -254,17 +254,5 @@ release: ensure-buildx clean --build-arg VERSION="$(TAG)" \ --build-arg COMMIT_SHA="$(COMMIT_SHA)" \ --build-arg BUILD_ID="$(BUILD_ID)" \ - -t $(REGISTRY)/controller:$(TAG) rootfs + -t $(REGISTRY)/nginx-ingress-controller:$(TAG) rootfs - docker buildx build \ - --no-cache \ - $(MAC_DOCKER_FLAGS) \ - --push \ - --pull \ - --progress plain \ - --platform $(BUILDX_PLATFORMS) \ - --build-arg BASE_IMAGE="$(BASE_IMAGE)" \ - --build-arg VERSION="$(TAG)" \ - --build-arg COMMIT_SHA="$(COMMIT_SHA)" \ - --build-arg BUILD_ID="$(BUILD_ID)" \ - -t $(REGISTRY)/controller-chroot:$(TAG) rootfs -f rootfs/Dockerfile.chroot From af6cce1fe33e3afc8e876670a78bbee17932b387 Mon Sep 17 00:00:00 2001 From: Sameer Kulkarni Date: Fri, 10 Jun 2022 15:26:17 +0530 Subject: [PATCH 37/41] fix drone build failure `go install ginkgo` followed by `which ginkgo` is newly added in the upstream repo. This is making the drone build fail for arm64 arch. The ginkgo library gets installed under $GOPATH/bin/linux_arm64 dir. This is unlike amd64 images which typically install go libraries under $GOPATH/bin. Since the previously mentioned dir is not in PATH, the command `which ginkgo` fails. I've added this location to PATH to fix the build failure. See upstream PRs linked below for more info: https://github.com/kubernetes/ingress-nginx/pull/8566 https://github.com/kubernetes/ingress-nginx/pull/8569 --- build/run-in-docker.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/build/run-in-docker.sh b/build/run-in-docker.sh index 2e1256fb20..cea8eb11e5 100755 --- a/build/run-in-docker.sh +++ b/build/run-in-docker.sh @@ -89,6 +89,7 @@ if [[ "$DOCKER_IN_DOCKER_ENABLED" == "true" ]]; then #go env go install -mod=mod github.com/onsi/ginkgo/v2/ginkgo@v2.13.1 find / -type f -name ginkgo 2>/dev/null + PATH=$PATH:$GOPATH/bin/linux_arm64 which ginkgo /bin/bash -c "${FLAGS}" else From 8d5dcadc676b7ef3ac08703c241afdb3fd7b0480 Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Fri, 20 Jan 2023 16:16:28 +0530 Subject: [PATCH 38/41] use go 1.19.5 --- Dockerfile.dapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 89c16935ff..01188561f2 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,7 +23,7 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://golang.org/dl/go1.17.2.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ +RUN wget -O - https://golang.org/dl/go1.19.5.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins From 151690d180d556b29cff32984a2bef425537311b Mon Sep 17 00:00:00 2001 From: Rayan Das Date: Fri, 27 Jan 2023 19:20:33 +0530 Subject: [PATCH 39/41] Add arm and s390x in the arches in scripts/build. only amd64 and arm64 was in arches because of this the CI wasn't able to find the following files with not found error. /bin/arm/nginx-ingress-controller, /bin/arm/wait-shutdown and /bin/arm/dbg --- scripts/build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build b/scripts/build index 546bfd3929..86e835caa6 100755 --- a/scripts/build +++ b/scripts/build @@ -10,7 +10,7 @@ PKG="k8s.io/ingress-nginx" rm -rf bin/* mkdir -p bin -declare -a arches=("arm64" "amd64") +declare -a arches=("arm64" "amd64" "arm" "s390x") for arch in "${arches[@]}" do ARCH=$arch DOCKER_IN_DOCKER_ENABLED=true USER=0 make build From 7eb156d3cd3e0c6cd6e0bf5bfd4756f81d7329f6 Mon Sep 17 00:00:00 2001 From: vardhaman22 Date: Fri, 27 Oct 2023 13:59:09 +0530 Subject: [PATCH 40/41] use go 1.21.3 --- Dockerfile.dapper | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 01188561f2..63cfa73511 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,7 +23,7 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://golang.org/dl/go1.19.5.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ +RUN wget -O - https://golang.org/dl/go1.21.3.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins From f6465d14e739186732e960052d5f4e05accfdbf4 Mon Sep 17 00:00:00 2001 From: Chirayu Kapoor Date: Wed, 14 Feb 2024 21:24:09 +0530 Subject: [PATCH 41/41] use go 1.21.5 | go mod tidy Signed-off-by: Chirayu Kapoor --- Dockerfile.dapper | 2 +- go.work.sum | 90 ++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 90 insertions(+), 2 deletions(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 63cfa73511..ec627936a8 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -23,7 +23,7 @@ RUN apt-get update && \ rm -f /bin/sh && ln -s /bin/bash /bin/sh ENV GOLANG_ARCH_amd64=amd64 GOLANG_ARCH_arm=armv6l GOLANG_ARCH_arm64=arm64 GOLANG_ARCH=GOLANG_ARCH_${ARCH} \ GOPATH=/go PATH=/go/bin:/usr/local/go/bin:${PATH} SHELL=/bin/bash -RUN wget -O - https://golang.org/dl/go1.21.3.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ +RUN wget -O - https://golang.org/dl/go1.21.5.linux-${!GOLANG_ARCH}.tar.gz | tar -xzf - -C /usr/local && \ curl -sL https://install.goreleaser.com/github.com/golangci/golangci-lint.sh | sh -s v1.41.0 COPY --from=0 /usr/local/bin/docker /usr/bin/docker RUN mkdir -p /.docker/cli-plugins diff --git a/go.work.sum b/go.work.sum index 2b31940aa9..13e8c40d2a 100644 --- a/go.work.sum +++ b/go.work.sum @@ -1,10 +1,13 @@ cloud.google.com/go v0.97.0/go.mod h1:GF7l59pYBVlXQIBLx3a761cZ41F9bBH3JUlihCt2Udc= cloud.google.com/go v0.110.2/go.mod h1:k04UEeEtb6ZBRTv3dZz4CeJC3jKGxyhl0sAiVVquxiw= cloud.google.com/go v0.110.4/go.mod h1:+EYjdK8e5RME/VY/qLCAtuyALQ9q67dvuum8i+H5xsI= +cloud.google.com/go v0.110.8/go.mod h1:Iz8AkXJf1qmxC3Oxoep8R1T36w8B92yU29PcBhHO5fk= cloud.google.com/go/accessapproval v1.7.1/go.mod h1:JYczztsHRMK7NTXb6Xw+dwbs/WnOJxbo/2mTI+Kgg68= cloud.google.com/go/accesscontextmanager v1.8.1/go.mod h1:JFJHfvuaTC+++1iL1coPiG1eu5D24db2wXCDWDjIrxo= cloud.google.com/go/aiplatform v1.45.0/go.mod h1:Iu2Q7sC7QGhXUeOhAj/oCK9a+ULz1O4AotZiqjQ8MYA= +cloud.google.com/go/aiplatform v1.50.0/go.mod h1:IRc2b8XAMTa9ZmfJV1BCCQbieWWvDnP1A8znyz5N7y4= cloud.google.com/go/analytics v0.21.2/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= +cloud.google.com/go/analytics v0.21.3/go.mod h1:U8dcUtmDmjrmUTnnnRnI4m6zKn/yaA5N9RlEkYFHpQo= cloud.google.com/go/apigateway v1.6.1/go.mod h1:ufAS3wpbRjqfZrzpvLC2oh0MFlpRJm2E/ts25yyqmXA= cloud.google.com/go/apigeeconnect v1.6.1/go.mod h1:C4awq7x0JpLtrlQCr8AzVIzAaYgngRqWf9S5Uhg+wWs= cloud.google.com/go/apigeeregistry v0.7.1/go.mod h1:1XgyjZye4Mqtw7T9TsY4NW10U7BojBvG4RMD+vRDrIw= @@ -15,97 +18,142 @@ cloud.google.com/go/asset v1.14.1/go.mod h1:4bEJ3dnHCqWCDbWJ/6Vn7GVI9LerSi7Rfdi0 cloud.google.com/go/assuredworkloads v1.11.1/go.mod h1:+F04I52Pgn5nmPG36CWFtxmav6+7Q+c5QyJoL18Lry0= cloud.google.com/go/automl v1.13.1/go.mod h1:1aowgAHWYZU27MybSCFiukPO7xnyawv7pt3zK4bheQE= cloud.google.com/go/baremetalsolution v0.5.0/go.mod h1:dXGxEkmR9BMwxhzBhV0AioD0ULBmuLZI8CdwalUxuss= +cloud.google.com/go/baremetalsolution v1.2.0/go.mod h1:68wi9AwPYkEWIUT4SvSGS9UJwKzNpshjHsH4lzk8iOw= cloud.google.com/go/batch v0.7.0/go.mod h1:vLZN95s6teRUqRQ4s3RLDsH8PvboqBK+rn1oevL159g= +cloud.google.com/go/batch v1.4.1/go.mod h1:KdBmDD61K0ovcxoRHGrN6GmOBWeAOyCgKD0Mugx4Fkk= cloud.google.com/go/beyondcorp v0.6.1/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= +cloud.google.com/go/beyondcorp v1.0.0/go.mod h1:YhxDWw946SCbmcWo3fAhw3V4XZMSpQ/VYfcKGAEU8/4= cloud.google.com/go/bigquery v1.52.0/go.mod h1:3b/iXjRQGU4nKa87cXeg6/gogLjO8C6PmuM8i5Bi/u4= +cloud.google.com/go/bigquery v1.55.0/go.mod h1:9Y5I3PN9kQWuid6183JFhOGOW3GcirA5LpsKCUn+2ec= cloud.google.com/go/billing v1.16.0/go.mod h1:y8vx09JSSJG02k5QxbycNRrN7FGZB6F3CAcgum7jvGA= +cloud.google.com/go/billing v1.17.0/go.mod h1:Z9+vZXEq+HwH7bhJkyI4OQcR6TSbeMrjlpEjO2vzY64= cloud.google.com/go/binaryauthorization v1.6.1/go.mod h1:TKt4pa8xhowwffiBmbrbcxijJRZED4zrqnwZ1lKH51U= +cloud.google.com/go/binaryauthorization v1.7.0/go.mod h1:Zn+S6QqTMn6odcMU1zDZCJxPjU2tZPV1oDl45lWY154= cloud.google.com/go/certificatemanager v1.7.1/go.mod h1:iW8J3nG6SaRYImIa+wXQ0g8IgoofDFRp5UMzaNk1UqI= cloud.google.com/go/channel v1.16.0/go.mod h1:eN/q1PFSl5gyu0dYdmxNXscY/4Fi7ABmeHCJNf/oHmc= +cloud.google.com/go/channel v1.17.0/go.mod h1:RpbhJsGi/lXWAUM1eF4IbQGbsfVlg2o8Iiy2/YLfVT0= cloud.google.com/go/cloudbuild v1.10.1/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= +cloud.google.com/go/cloudbuild v1.14.0/go.mod h1:lyJg7v97SUIPq4RC2sGsz/9tNczhyv2AjML/ci4ulzU= cloud.google.com/go/clouddms v1.6.1/go.mod h1:Ygo1vL52Ov4TBZQquhz5fiw2CQ58gvu+PlS6PVXCpZI= +cloud.google.com/go/clouddms v1.7.0/go.mod h1:MW1dC6SOtI/tPNCciTsXtsGNEM0i0OccykPvv3hiYeM= cloud.google.com/go/cloudtasks v1.11.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= +cloud.google.com/go/cloudtasks v1.12.1/go.mod h1:a9udmnou9KO2iulGscKR0qBYjreuX8oHwpmFsKspEvM= cloud.google.com/go/compute v1.19.3/go.mod h1:qxvISKp/gYnXkSAD1ppcSOveRAmzxicEv/JlizULFrI= cloud.google.com/go/compute v1.20.1/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute v1.21.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= +cloud.google.com/go/compute v1.23.0/go.mod h1:4tCnrn48xsqlwSAiLf1HXMQk8CONslYbdiEZc9FEIbM= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/contactcenterinsights v1.9.1/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= +cloud.google.com/go/contactcenterinsights v1.10.0/go.mod h1:bsg/R7zGLYMVxFFzfh9ooLTruLRCG9fnzhH9KznHhbM= cloud.google.com/go/container v1.22.1/go.mod h1:lTNExE2R7f+DLbAN+rJiKTisauFCaoDq6NURZ83eVH4= +cloud.google.com/go/container v1.26.0/go.mod h1:YJCmRet6+6jnYYRS000T6k0D0xUXQgBSaJ7VwI8FBj4= cloud.google.com/go/containeranalysis v0.10.1/go.mod h1:Ya2jiILITMY68ZLPaogjmOMNkwsDrWBSTyBubGXO7j0= +cloud.google.com/go/containeranalysis v0.11.0/go.mod h1:4n2e99ZwpGxpNcz+YsFT1dfOHPQFGcAC8FN2M2/ne/U= cloud.google.com/go/datacatalog v1.14.1/go.mod h1:d2CevwTG4yedZilwe+v3E3ZBDRMobQfSG/a6cCCN5R4= +cloud.google.com/go/datacatalog v1.17.1/go.mod h1:nCSYFHgtxh2MiEktWIz71s/X+7ds/UT9kp0PC7waCzE= cloud.google.com/go/dataflow v0.9.1/go.mod h1:Wp7s32QjYuQDWqJPFFlnBKhkAtiFpMTdg00qGbnIHVw= cloud.google.com/go/dataform v0.8.1/go.mod h1:3BhPSiw8xmppbgzeBbmDvmSWlwouuJkXsXsb8UBih9M= cloud.google.com/go/datafusion v1.7.1/go.mod h1:KpoTBbFmoToDExJUso/fcCiguGDk7MEzOWXUsJo0wsI= cloud.google.com/go/datalabeling v0.8.1/go.mod h1:XS62LBSVPbYR54GfYQsPXZjTW8UxCK2fkDciSrpRFdY= cloud.google.com/go/dataplex v1.8.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= +cloud.google.com/go/dataplex v1.9.1/go.mod h1:7TyrDT6BCdI8/38Uvp0/ZxBslOslP2X2MPDucliyvSE= cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= +cloud.google.com/go/dataproc/v2 v2.2.0/go.mod h1:lZR7AQtwZPvmINx5J87DSOOpTfof9LVZju6/Qo4lmcY= cloud.google.com/go/dataqna v0.8.1/go.mod h1:zxZM0Bl6liMePWsHA8RMGAfmTG34vJMapbHAxQ5+WA8= cloud.google.com/go/datastore v1.12.1/go.mod h1:KjdB88W897MRITkvWWJrg2OUtrR5XVj1EoLgSp6/N70= +cloud.google.com/go/datastore v1.14.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= cloud.google.com/go/datastream v1.9.1/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= +cloud.google.com/go/datastream v1.10.0/go.mod h1:hqnmr8kdUBmrnk65k5wNRoHSCYksvpdZIcZIEl8h43Q= cloud.google.com/go/deploy v1.11.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= +cloud.google.com/go/deploy v1.13.0/go.mod h1:tKuSUV5pXbn67KiubiUNUejqLs4f5cxxiCNCeyl0F2g= cloud.google.com/go/dialogflow v1.38.0/go.mod h1:L7jnH+JL2mtmdChzAIcXQHXMvQkE3U4hTaNltEuxXn4= +cloud.google.com/go/dialogflow v1.43.0/go.mod h1:pDUJdi4elL0MFmt1REMvFkdsUTYSHq+rTCS8wg0S3+M= cloud.google.com/go/dlp v1.10.1/go.mod h1:IM8BWz1iJd8njcNcG0+Kyd9OPnqnRNkDV8j42VT5KOI= cloud.google.com/go/documentai v1.20.0/go.mod h1:yJkInoMcK0qNAEdRnqY/D5asy73tnPe88I1YTZT+a8E= +cloud.google.com/go/documentai v1.22.1/go.mod h1:LKs22aDHbJv7ufXuPypzRO7rG3ALLJxzdCXDPutw4Qc= cloud.google.com/go/domains v0.9.1/go.mod h1:aOp1c0MbejQQ2Pjf1iJvnVyT+z6R6s8pX66KaCSDYfE= cloud.google.com/go/edgecontainer v1.1.1/go.mod h1:O5bYcS//7MELQZs3+7mabRqoWQhXCzenBu0R8bz2rwk= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= cloud.google.com/go/essentialcontacts v1.6.2/go.mod h1:T2tB6tX+TRak7i88Fb2N9Ok3PvY3UNbUsMag9/BARh4= cloud.google.com/go/eventarc v1.12.1/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= +cloud.google.com/go/eventarc v1.13.0/go.mod h1:mAFCW6lukH5+IZjkvrEss+jmt2kOdYlN8aMx3sRJiAI= cloud.google.com/go/filestore v1.7.1/go.mod h1:y10jsorq40JJnjR/lQ8AfFbbcGlw3g+Dp8oN7i7FjV4= cloud.google.com/go/firestore v1.11.0/go.mod h1:b38dKhgzlmNNGTNZZwe7ZRFEuRab1Hay3/DBsIGKKy4= +cloud.google.com/go/firestore v1.13.0/go.mod h1:QojqqOh8IntInDUSTAh0c8ZsPYAr68Ma8c5DWOy8xb8= cloud.google.com/go/functions v1.15.1/go.mod h1:P5yNWUTkyU+LvW/S9O6V+V423VZooALQlqoXdoPz5AE= cloud.google.com/go/gkebackup v0.4.0/go.mod h1:byAyBGUwYGEEww7xsbnUTBHIYcOPy/PgUWUtOeRm9Vg= +cloud.google.com/go/gkebackup v1.3.1/go.mod h1:vUDOu++N0U5qs4IhG1pcOnD1Mac79xWy6GoBFlWCWBU= cloud.google.com/go/gkeconnect v0.8.1/go.mod h1:KWiK1g9sDLZqhxB2xEuPV8V9NYzrqTUmQR9shJHpOZw= cloud.google.com/go/gkehub v0.14.1/go.mod h1:VEXKIJZ2avzrbd7u+zeMtW00Y8ddk/4V9511C9CQGTY= cloud.google.com/go/gkemulticloud v0.6.1/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= +cloud.google.com/go/gkemulticloud v1.0.0/go.mod h1:kbZ3HKyTsiwqKX7Yw56+wUGwwNZViRnxWK2DVknXWfw= cloud.google.com/go/gsuiteaddons v1.6.1/go.mod h1:CodrdOqRZcLp5WOwejHWYBjZvfY0kOphkAKpF/3qdZY= cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= cloud.google.com/go/iam v1.1.1/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= +cloud.google.com/go/iam v1.1.2/go.mod h1:A5avdyVL2tCppe4unb0951eI9jreack+RJ0/d+KUZOU= cloud.google.com/go/iap v1.8.1/go.mod h1:sJCbeqg3mvWLqjZNsI6dfAtbbV1DL2Rl7e1mTyXYREQ= +cloud.google.com/go/iap v1.9.0/go.mod h1:01OFxd1R+NFrg78S+hoPV5PxEzv22HXaNqUUlmNHFuY= cloud.google.com/go/ids v1.4.1/go.mod h1:np41ed8YMU8zOgv53MMMoCntLTn2lF+SUzlM+O3u/jw= cloud.google.com/go/iot v1.7.1/go.mod h1:46Mgw7ev1k9KqK1ao0ayW9h0lI+3hxeanz+L1zmbbbk= cloud.google.com/go/kms v1.12.1/go.mod h1:c9J991h5DTl+kg7gi3MYomh12YEENGrf48ee/N/2CDM= +cloud.google.com/go/kms v1.15.2/go.mod h1:3hopT4+7ooWRCjc2DxgnpESFxhIraaI2IpAVUEhbT/w= cloud.google.com/go/language v1.10.1/go.mod h1:CPp94nsdVNiQEt1CNjF5WkTcisLiHPyIbMhvR8H2AW0= +cloud.google.com/go/language v1.11.0/go.mod h1:uDx+pFDdAKTY8ehpWbiXyQdz8tDSYLJbQcXsCkjYyvQ= cloud.google.com/go/lifesciences v0.9.1/go.mod h1:hACAOd1fFbCGLr/+weUKRAJas82Y4vrL3O5326N//Wc= cloud.google.com/go/logging v1.7.0/go.mod h1:3xjP2CjkM3ZkO73aj4ASA5wRPGGCRrPIAeNqVNkzY8M= +cloud.google.com/go/logging v1.8.1/go.mod h1:TJjR+SimHwuC8MZ9cjByQulAMgni+RkXeI3wwctHJEI= cloud.google.com/go/longrunning v0.5.0/go.mod h1:0JNuqRShmscVAhIACGtskSAWtqtOoPkwP0YF1oVEchc= cloud.google.com/go/longrunning v0.5.1/go.mod h1:spvimkwdz6SPWKEt/XBij79E9fiTkHSQl/fRUUQJYJc= cloud.google.com/go/managedidentities v1.6.1/go.mod h1:h/irGhTN2SkZ64F43tfGPMbHnypMbu4RB3yl8YcuEak= cloud.google.com/go/maps v0.7.0/go.mod h1:3GnvVl3cqeSvgMcpRlQidXsPYuDGQ8naBis7MVzpXsY= +cloud.google.com/go/maps v1.4.0/go.mod h1:6mWTUv+WhnOwAgjVsSW2QPPECmW+s3PcRyOa9vgG/5s= cloud.google.com/go/mediatranslation v0.8.1/go.mod h1:L/7hBdEYbYHQJhX2sldtTO5SZZ1C1vkapubj0T2aGig= cloud.google.com/go/memcache v1.10.1/go.mod h1:47YRQIarv4I3QS5+hoETgKO40InqzLP6kpNLvyXuyaA= cloud.google.com/go/metastore v1.11.1/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= +cloud.google.com/go/metastore v1.12.0/go.mod h1:uZuSo80U3Wd4zi6C22ZZliOUJ3XeM/MlYi/z5OAOWRA= cloud.google.com/go/monitoring v1.15.1/go.mod h1:lADlSAlFdbqQuwwpaImhsJXu1QSdd3ojypXrFSMr2rM= +cloud.google.com/go/monitoring v1.16.0/go.mod h1:Ptp15HgAyM1fNICAojDMoNc/wUmn67mLHQfyqbw+poY= cloud.google.com/go/networkconnectivity v1.12.1/go.mod h1:PelxSWYM7Sh9/guf8CFhi6vIqf19Ir/sbfZRUwXh92E= +cloud.google.com/go/networkconnectivity v1.13.0/go.mod h1:SAnGPes88pl7QRLUen2HmcBSE9AowVAcdug8c0RSBFk= cloud.google.com/go/networkmanagement v1.8.0/go.mod h1:Ho/BUGmtyEqrttTgWEe7m+8vDdK74ibQc+Be0q7Fof0= +cloud.google.com/go/networkmanagement v1.9.0/go.mod h1:UTUaEU9YwbCAhhz3jEOHr+2/K/MrBk2XxOLS89LQzFw= cloud.google.com/go/networksecurity v0.9.1/go.mod h1:MCMdxOKQ30wsBI1eI659f9kEp4wuuAueoC9AJKSPWZQ= cloud.google.com/go/notebooks v1.9.1/go.mod h1:zqG9/gk05JrzgBt4ghLzEepPHNwE5jgPcHZRKhlC1A8= +cloud.google.com/go/notebooks v1.10.0/go.mod h1:SOPYMZnttHxqot0SGSFSkRrwE29eqnKPBJFqgWmiK2k= cloud.google.com/go/optimization v1.4.1/go.mod h1:j64vZQP7h9bO49m2rVaTVoNM0vEBEN5eKPUPbZyXOrk= +cloud.google.com/go/optimization v1.5.0/go.mod h1:evo1OvTxeBRBu6ydPlrIRizKY/LJKo/drDMMRKqGEUU= cloud.google.com/go/orchestration v1.8.1/go.mod h1:4sluRF3wgbYVRqz7zJ1/EUNc90TTprliq9477fGobD8= cloud.google.com/go/orgpolicy v1.11.1/go.mod h1:8+E3jQcpZJQliP+zaFfayC2Pg5bmhuLK755wKhIIUCE= cloud.google.com/go/osconfig v1.12.1/go.mod h1:4CjBxND0gswz2gfYRCUoUzCm9zCABp91EeTtWXyz0tE= cloud.google.com/go/oslogin v1.10.1/go.mod h1:x692z7yAue5nE7CsSnoG0aaMbNoRJRXO4sn73R+ZqAs= cloud.google.com/go/phishingprotection v0.8.1/go.mod h1:AxonW7GovcA8qdEk13NfHq9hNx5KPtfxXNeUxTDxB6I= cloud.google.com/go/policytroubleshooter v1.7.1/go.mod h1:0NaT5v3Ag1M7U5r0GfDCpUFkWd9YqpubBWsQlhanRv0= +cloud.google.com/go/policytroubleshooter v1.9.0/go.mod h1:+E2Lga7TycpeSTj2FsH4oXxTnrbHJGRlKhVZBLGgU64= cloud.google.com/go/privatecatalog v0.9.1/go.mod h1:0XlDXW2unJXdf9zFz968Hp35gl/bhF4twwpXZAW50JA= cloud.google.com/go/pubsub v1.32.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= +cloud.google.com/go/pubsub v1.33.0/go.mod h1:f+w71I33OMyxf9VpMVcZbnG5KSUkCOUHYpFd5U1GdRc= cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= cloud.google.com/go/recaptchaenterprise/v2 v2.7.2/go.mod h1:kR0KjsJS7Jt1YSyWFkseQ756D45kaYNTlDPPaRAvDBU= cloud.google.com/go/recommendationengine v0.8.1/go.mod h1:MrZihWwtFYWDzE6Hz5nKcNz3gLizXVIDI/o3G1DLcrE= cloud.google.com/go/recommender v1.10.1/go.mod h1:XFvrE4Suqn5Cq0Lf+mCP6oBHD/yRMA8XxP5sb7Q7gpA= +cloud.google.com/go/recommender v1.11.0/go.mod h1:kPiRQhPyTJ9kyXPCG6u/dlPLbYfFlkwHNRwdzPVAoII= cloud.google.com/go/redis v1.13.1/go.mod h1:VP7DGLpE91M6bcsDdMuyCm2hIpB6Vp2hI090Mfd1tcg= cloud.google.com/go/resourcemanager v1.9.1/go.mod h1:dVCuosgrh1tINZ/RwBufr8lULmWGOkPS8gL5gqyjdT8= cloud.google.com/go/resourcesettings v1.6.1/go.mod h1:M7mk9PIZrC5Fgsu1kZJci6mpgN8o0IUzVx3eJU3y4Jw= cloud.google.com/go/retail v1.14.1/go.mod h1:y3Wv3Vr2k54dLNIrCzenyKG8g8dhvhncT2NcNjb/6gE= cloud.google.com/go/run v0.9.0/go.mod h1:Wwu+/vvg8Y+JUApMwEDfVfhetv30hCG4ZwDR/IXl2Qg= +cloud.google.com/go/run v1.2.0/go.mod h1:36V1IlDzQ0XxbQjUx6IYbw8H3TJnWvhii963WW3B/bo= cloud.google.com/go/scheduler v1.10.1/go.mod h1:R63Ldltd47Bs4gnhQkmNDse5w8gBRrhObZ54PxgR2Oo= cloud.google.com/go/secretmanager v1.11.1/go.mod h1:znq9JlXgTNdBeQk9TBW/FnR/W4uChEKGeqQWAJ8SXFw= cloud.google.com/go/security v1.15.1/go.mod h1:MvTnnbsWnehoizHi09zoiZob0iCHVcL4AUBj76h9fXA= cloud.google.com/go/securitycenter v1.23.0/go.mod h1:8pwQ4n+Y9WCWM278R8W3nF65QtY172h4S8aXyI9/hsQ= cloud.google.com/go/servicedirectory v1.10.1/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= +cloud.google.com/go/servicedirectory v1.11.0/go.mod h1:Xv0YVH8s4pVOwfM/1eMTl0XJ6bzIOSLDt8f8eLaGOxQ= cloud.google.com/go/shell v1.7.1/go.mod h1:u1RaM+huXFaTojTbW4g9P5emOrrmLE69KrxqQahKn4g= cloud.google.com/go/spanner v1.47.0/go.mod h1:IXsJwVW2j4UKs0eYDqodab6HgGuA1bViSqW4uH9lfUI= +cloud.google.com/go/spanner v1.49.0/go.mod h1:eGj9mQGK8+hkgSVbHNQ06pQ4oS+cyc4tXXd6Dif1KoM= cloud.google.com/go/speech v1.17.1/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= +cloud.google.com/go/speech v1.19.0/go.mod h1:8rVNzU43tQvxDaGvqOhpDqgkJTFowBpDvCJ14kGlJYo= cloud.google.com/go/storage v1.30.1/go.mod h1:NfxhC0UJE1aXSx7CIIbCf7y9HKT7BiccwkR7+P7gN8E= cloud.google.com/go/storagetransfer v1.10.0/go.mod h1:DM4sTlSmGiNczmV6iZyceIh2dbs+7z2Ayg6YAiQlYfA= cloud.google.com/go/talent v1.6.2/go.mod h1:CbGvmKCG61mkdjcqTcLOkb2ZN1SrQI8MDyma2l7VD24= @@ -113,15 +161,19 @@ cloud.google.com/go/texttospeech v1.7.1/go.mod h1:m7QfG5IXxeneGqTapXNxv2ItxP/FS0 cloud.google.com/go/tpu v1.6.1/go.mod h1:sOdcHVIgDEEOKuqUoi6Fq53MKHJAtOwtz0GuKsWSH3E= cloud.google.com/go/trace v1.10.1/go.mod h1:gbtL94KE5AJLH3y+WVpfWILmqgc6dXcqgNXdOPAQTYk= cloud.google.com/go/translate v1.8.1/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= +cloud.google.com/go/translate v1.9.0/go.mod h1:d1ZH5aaOA0CNhWeXeC8ujd4tdCFw8XoNWRljklu5RHs= cloud.google.com/go/video v1.17.1/go.mod h1:9qmqPqw/Ib2tLqaeHgtakU+l5TcJxCJbhFXM7UJjVzU= +cloud.google.com/go/video v1.20.0/go.mod h1:U3G3FTnsvAGqglq9LxgqzOiBc/Nt8zis8S+850N2DUM= cloud.google.com/go/videointelligence v1.11.1/go.mod h1:76xn/8InyQHarjTWsBR058SmlPCwQjgcvoW0aZykOvo= cloud.google.com/go/vision/v2 v2.7.2/go.mod h1:jKa8oSYBWhYiXarHPvP4USxYANYUEdEsQrloLjrSwJU= cloud.google.com/go/vmmigration v1.7.1/go.mod h1:WD+5z7a/IpZ5bKK//YmT9E047AD+rjycCAvyMxGJbro= cloud.google.com/go/vmwareengine v0.4.1/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= +cloud.google.com/go/vmwareengine v1.0.0/go.mod h1:Px64x+BvjPZwWuc4HdmVhoygcXqEkGHXoa7uyfTgSI0= cloud.google.com/go/vpcaccess v1.7.1/go.mod h1:FogoD46/ZU+JUBX9D606X21EnxiszYi2tArQwLY4SXs= cloud.google.com/go/webrisk v1.9.1/go.mod h1:4GCmXKcOa2BZcZPn6DCEvE7HypmEJcJkr4mtM+sqYPc= cloud.google.com/go/websecurityscanner v1.6.1/go.mod h1:Njgaw3rttgRHXzwCB8kgCYqv5/rGpFCsBOvPbYgszpg= cloud.google.com/go/workflows v1.11.1/go.mod h1:Z+t10G1wF7h8LgdY/EmRcQY8ptBD/nvofaL6FqlET6g= +cloud.google.com/go/workflows v1.12.0/go.mod h1:PYhSk2b6DhZ508tj8HXKaBh+OFe+xdl0dHF/tJdzPQM= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= @@ -141,6 +193,7 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e h1:Wf6HqHfScWJN9/ZjdUKyjop4mf3Qdd+1TvvltAvM3m8= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= @@ -156,28 +209,63 @@ github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u1 github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ= +github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/s2a-go v0.1.4/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.2.3/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/enterprise-certificate-proxy v0.2.4/go.mod h1:AwSRAtLfXpU5Nm3pW+v7rGDHp09LsPtGY9MduiEsR9k= +github.com/googleapis/gax-go/v2 v2.10.0/go.mod h1:4UOEnMCrxsSqQ940WnTiD6qJ63le2ev3xfyagutxiPw= github.com/googleapis/gax-go/v2 v2.11.0/go.mod h1:DxmR61SGKkGLa2xigwuZIQpkCI2S5iydzRfb3peWZJI= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +golang.org/x/crypto v0.0.0-20220314234659-1baeb1ce4c0b/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= +golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= +google.golang.org/api v0.126.0/go.mod h1:mBwVAtz+87bEN6CbA1GtZPDOqY2R5ONPqJeIlvyo4Aw= +google.golang.org/api v0.128.0/go.mod h1:Y611qgqaE92On/7g65MQgxYul3c0rEB894kniWLY750= +google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= +google.golang.org/genproto v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:CCviP9RmpZ1mxVr8MUjCnSiY09IbAXZxhLE6EhHIdPU= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97 h1:SeZZZx0cP0fqUyA+oRzP9k7cSwJlvDFiROO72uwD6i0= +google.golang.org/genproto v0.0.0-20231002182017-d307bd883b97/go.mod h1:t1VqOqqvce95G3hIDCT5FeO3YUc6Q4Oe24L/+rNMxRk= +google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= +google.golang.org/genproto/googleapis/api v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:RdyHbowztCGQySiCvQPgWQWgWhGnouTdCflKoDBt32U= +google.golang.org/genproto/googleapis/api v0.0.0-20231002182017-d307bd883b97/go.mod h1:iargEX0SFPm3xcfMI0d1domjg0ZF4Aa0p2awqyxhvF0= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.45.0/go.mod h1:lN7owxKUQEqMfSyQikvvk5tf/6zMPsrK+ONuO11+0rQ= +google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.57.0/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=