Skip to content

kola/kubeadm: fix etcd MCR override to use ETCD_IMAGE_URL - #24

Draft
Jiri Appl (jiria) wants to merge 1 commit into
jiria/kubeadm-etcd-mcrfrom
jiria/fix/etcd-mcr-image-url
Draft

kola/kubeadm: fix etcd MCR override to use ETCD_IMAGE_URL#24
Jiri Appl (jiria) wants to merge 1 commit into
jiria/kubeadm-etcd-mcrfrom
jiria/fix/etcd-mcr-image-url

Conversation

@jiria

Copy link
Copy Markdown
Member

Summary

Fixes the systemic kubeadm kola failure on ACL Azure (build 1156311) where every kubeadm.* test fails at the pre-kubeadm etcd health poll with:

kubeadm.go:239: unable to setup cluster: unable to get etcd node health: health polling failed: Process exited with status 1

Root cause

The prior commit (6a75c39) added an etcd-member.service drop-in that set Environment="ETCD_IMAGE=mcr.microsoft.com/oss/v2/etcd-io/etcd:v3.5.22" to move the etcd image pull from quay.io (egress-blocked on the Azure kola pool) to MCR.

However the flatcar etcd-wrapper builds the image reference from ETCD_IMAGE_URL (default quay.io/coreos/etcd) + ETCD_IMAGE_TAG (set to v3.5.22 by the CLCT etcd drop-in 20-clct-etcd-member.conf). A combined ETCD_IMAGE variable is not read by the wrapper, so the override had no effect — the etcd node kept pulling quay.io/coreos/etcd:v3.5.22, the blocked pull failed, etcd never became healthy, and every kubeadm test failed identically to before the "fix".

Fix

Override ETCD_IMAGE_URL=mcr.microsoft.com/oss/v2/etcd-io/etcd instead. Combined with the transpiler-set ETCD_IMAGE_TAG=v3.5.22 this resolves to mcr.microsoft.com/oss/v2/etcd-io/etcd:v3.5.22 — verified to exist on MCR (/v2/oss/v2/etcd-io/etcd/tags/list includes v3.5.22) and reachable from the Azure pool.

Testing

  • GOOS=linux go build ./kola/tests/kubeadm/ passes.
  • Needs a validation run of Test Kola Azure on both amd64 and aarch64 (handled by the pipeline).

The prior drop-in set Environment=ETCD_IMAGE, but the flatcar etcd-wrapper
builds the image reference from ETCD_IMAGE_URL (default quay.io/coreos/etcd)
and ETCD_IMAGE_TAG (set to v3.5.22 by the CLCT etcd drop-in). ETCD_IMAGE is
not read by the wrapper, so the override had no effect: the etcd node kept
pulling quay.io/coreos/etcd:v3.5.22, which is blocked by the Azure kola pool
egress restriction, so etcd never became healthy and every kubeadm.* test
failed at the pre-kubeadm etcd health poll.

Override ETCD_IMAGE_URL=mcr.microsoft.com/oss/v2/etcd-io/etcd instead; combined
with the transpiler-set ETCD_IMAGE_TAG=v3.5.22 this yields
mcr.microsoft.com/oss/v2/etcd-io/etcd:v3.5.22, which exists on MCR and is
reachable from the Azure pool.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant