Skip to content

istio.VERSION references non-existent proxy image with locally committed changes #4022

@ayj

Description

@ayj

The e2e makefile test targets (e.g. make e2e_pilot) don't work reliability with locally committed changes. The generate_yaml make target updates PROXY_TAG in istio.VERSION with the current repo's latest sha. PROXY_TAG is then used by the docker image target to download a prebuilt proxy image from a GCS bucket. The problem is that PROXY_TAG corresponds to the current repo (istio/istio) but that image hasn't been built/pushed from istio/proxy repo.

Minimal steps to reproduce the problem:

$ make generate_yaml
./install/updateVersion.sh -a jasonayoung,09c368f87d02499943324746aa48b20c5649e77d >/dev/null 2>&1

$ make docker.proxy
mkdir -p /home/jasonyoung/work/out/linux_amd64/release/docker_temp
bin/gobuild.sh /home/jasonyoung/work/out/linux_amd64/release/pilot-agent istio.io/istio/pkg/version ./pilot/cmd/pilot-agent

real    0m5.239s
user    0m12.820s
sys     0m1.132s
cp /home/jasonyoung/work/out/linux_amd64/release/pilot-agent /home/jasonyoung/work/out/linux_amd64/release/docker_temp
make: *** No rule to make target '/home/jasonyoung/work/out/linux_amd64/release/envoy-09c368f87d02499943324746aa48b20c5649e77d', needed by '/home/jasonyoung/work/out/linux_amd64/release/docker_temp/envoy'.  Stop.

One workaround is to explicitly set PROXY_TAG to a known good value, e.g.

# Save `PROXY_TAG` before it's overwritten by other make targets and 
# download the corresponding proxy image from GCS via `make init`
git checkout istio.VERSION
PROXY_TAG=$(sed 's/export PROXY_TAG="\([0-9a-z]*\)"/\1/;t;d' istio.VERSION)
make init
make generate_yaml
PROXY_TAG=$PROXY_TAG make docker.proxy

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions