Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conformance Echo Server Depends on Ingress Controller Conformance Repo #2445

Closed
robscott opened this issue Sep 28, 2023 · 0 comments · Fixed by #2447
Closed

Conformance Echo Server Depends on Ingress Controller Conformance Repo #2445

robscott opened this issue Sep 28, 2023 · 0 comments · Fixed by #2447
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@robscott
Copy link
Member

What happened:
Any time we need to tweak our base image for conformance tests we have to update https://github.com/kubernetes-sigs/ingress-controller-conformance, which is largely frozen in time other than our updates to the base image.

What you expected to happen:
We should likely control the image within Gateway API repo.

I think it would be relatively simple to set this up since we already have a job that builds and pushes images. Our cloudbuild.yaml calls make release-staging:

gateway-api/Makefile

Lines 156 to 158 in 18506b7

.PHONY: release-staging
release-staging: image.multiarch.setup
hack/build-and-push.sh

That calls out to hack/build-and-push.sh which already builds and pushes multiple images, including our Istio-based echo-server:

echo "Building and pushing admission-server image...${BUILDX_PLATFORMS}"
# First, build the image, with the version info passed in.
# Note that an image will *always* be built tagged with the GIT_TAG, so we know when it was built.
# And, we add an extra version tag - either :latest or semver.
# The buildx integrate build and push in one line.
docker buildx build \
-t ${REGISTRY}/admission-server:${GIT_TAG} \
-t ${REGISTRY}/admission-server:${VERSION_TAG} \
--build-arg "COMMIT=${COMMIT}" \
--build-arg "TAG=${BINARY_TAG}" \
--platform ${BUILDX_PLATFORMS} \
--push \
-f docker/Dockerfile.webhook \
.
echo "Building and pushing echo-server image...${BUILDX_PLATFORMS}"
docker buildx build \
-t ${REGISTRY}/echo-server:${GIT_TAG} \
-t ${REGISTRY}/echo-server:${VERSION_TAG} \
--platform ${BUILDX_PLATFORMS} \
--push \
-f docker/Dockerfile.echo \
.

@robscott robscott added the kind/bug Categorizes issue or PR as related to a bug. label Sep 28, 2023
SRodi added a commit to SRodi/gateway-api that referenced this issue Sep 30, 2023
* add code from Ingress Controller Conformance Repo
* update build-and-push.sh to also build this image
* create Dockerfile.echoserver
* add go.work at root with reference to ./conformance/echoserver
* relates to kubernetes-sigs#2445
* discussed in kubernetes-sigs#2254
SRodi added a commit to SRodi/gateway-api that referenced this issue Sep 30, 2023
* add code from Ingress Controller Conformance Repo
* update build-and-push.sh to also build this image
* create Dockerfile.echoserver
* add go.work at root with reference to ./conformance/echoserver
* add delay support to echoserver
* relates to kubernetes-sigs#2445
* discussed in kubernetes-sigs#2254
k8s-ci-robot pushed a commit that referenced this issue Oct 5, 2023
* add-echo-server-code

* add code from Ingress Controller Conformance Repo
* update build-and-push.sh to also build this image
* create Dockerfile.echoserver
* add go.work at root with reference to ./conformance/echoserver
* add delay support to echoserver
* relates to #2445
* discussed in #2254

* fix go.work

* remove deprecated io/ioutil

* add-echo-basic

* rename to echo-basic (Istio's one can be echo-advanced)
* up go.mod go version to 1.20
* fix dockerfile golang version and COPY instruction (paths)
* update build-and-push.sh and go.work with new namings

* update module name in go.mod

* add some basic unit tests

* add unit test for tlsStateToAssertions func

* add echo-basic to test target in Makefile

* fix static check (S1000)
* should use a simple channel send/receive
  instead of select with a single case

* add boilerplate to to echo-basic_test.go

* add required go.work.sum

* required as indirect dependency
* see https://stackoverflow.com/a/71613130

* remove go.work files and rename echo-advanced

* re-add go.work files as tests are failing on prow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant