Skip to content

Commit 1aed9a4

Browse files
solssonclaude
andcommitted
y-cluster v0.3.4 -> v0.3.6, drop retry workaround
Two y-cluster releases unblock the docker provider on ubuntu-latest and let the acceptance script collapse to a single provision call: - v0.3.5 (Yolean/y-cluster#12) added a host-side /readyz probe between the in-container kubeconfig appearing and "k3s ready" being declared, closing the docker port-forward race that made envoy-gateway install fail with "dial tcp 127.0.0.1:6443: connect: connection refused". The 4x retry/sleep-10s workaround in this script is dead code now -- each retry tore the cluster down and reproduced the deterministic race anyway. - v0.3.6 (Yolean/y-cluster#15) fixed a separate silent-drop in the docker provider's PortBindings: HostIP was left as the zero netip.Addr ("invalid IP"), which moby v1.54+ marshals to the empty JSON string and Docker Engine 28 dropped silently. A second issue with PortBindings still surfaces in some CI contexts -- the y-cluster-managed container's NetworkSettings.Ports comes back empty even with v0.3.6 -- but it's distinct from anything this script can work around; filed upstream against y-cluster. The y-kustomize Deployment image is bumped to the matching v0.3.6 tag for consistency. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 477de20 commit 1aed9a4

3 files changed

Lines changed: 16 additions & 42 deletions

File tree

bin/y-bin.runner.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -156,14 +156,14 @@ cue:
156156
path: cue
157157

158158
cluster:
159-
version: 0.3.4
159+
version: 0.3.6
160160
templates:
161161
download: https://github.com/Yolean/y-cluster/releases/download/v${version}/y-cluster_v${version}_${os}_${arch}
162162
sha256:
163-
darwin_amd64: fde0f0b7a7575413036590d9d18d994d0e4f90c484e2a839fe148a85a8bf84da
164-
darwin_arm64: 338c5429911dfe7bf46acd829e6961116857ec00602a134549852e3fe591152c
165-
linux_amd64: 71c0877736eb39d954a3955456a84416af834b1d4f56639f516c106066512c40
166-
linux_arm64: 1b2d99af1cc99354a270108b4ec393d763e34531d78d2d76a1ad3bc0b34f7700
163+
darwin_amd64: bc1d008968c09b49bac147324c60c65a7832daed9fa64e226b08f4fc76414631
164+
darwin_arm64: ede0610738de938900028a5c66ce66a71fa954d1de2ae5ba00c429ea9dc7f2d8
165+
linux_amd64: 576964a8825f23c56b633ea5cbc0b587d25931c17c462e0d77a4ae80553146ae
166+
linux_arm64: 9b03cf2dc26bde4af8b65f04ee9a1ad7c22f39bcf77d0d54e25d964bc2b2fd43
167167

168168
contain:
169169
version: 0.9.1

e2e/agents-clusterautomation-acceptance-linux-amd64.sh

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -76,42 +76,16 @@ cleanup
7676

7777
# --- provision (no converge) ---
7878
#
79-
# y-cluster v0.3.4 fixed the docker auto-pull issue
80-
# (ISSUE_DOCKER_PROVIDER_NO_AUTO_PULL.md, fix in commit a959eb0).
81-
# One known race remains -- ISSUE_DOCKER_K3S_READY_BEFORE_APISERVER.md:
82-
# the "k3s ready" signal fires when /etc/rancher/k3s/k3s.yaml
83-
# exists in the container, but the host's :6443 port forward
84-
# isn't always reachable yet, and the next step (envoy-gateway
85-
# install via kubectl apply) fails with "dial tcp 127.0.0.1:6443:
86-
# connect: connection refused". Workaround: detect the
87-
# connect-refused error, sleep, retry. Becomes dead code once
88-
# y-cluster strengthens the readiness check on the host port.
89-
if [ "$(grep -E '^provider:' "$CONFIG/y-cluster-provision.yaml" | awk '{print $2}')" = "docker" ]; then
90-
_PRE_OUT=$(mktemp -t ystack-acceptance-provision.XXXXXX)
91-
_attempt=1
92-
while [ "$_attempt" -le 4 ]; do
93-
if y-cluster provision -c "$CONFIG" 2>&1 | tee "$_PRE_OUT"; then
94-
break
95-
fi
96-
if grep -q 'dial tcp 127.0.0.1:6443: connect: connection refused' "$_PRE_OUT"; then
97-
echo "# k3s apiserver host port not reachable yet (y-cluster readiness race); sleeping 10s before retry"
98-
sleep 10
99-
else
100-
cat "$_PRE_OUT" >&2
101-
rm -f "$_PRE_OUT"
102-
exit 1
103-
fi
104-
_attempt=$((_attempt + 1))
105-
done
106-
if [ "$_attempt" -gt 4 ]; then
107-
echo "# Provision failed after 4 attempts" >&2
108-
rm -f "$_PRE_OUT"
109-
exit 1
110-
fi
111-
rm -f "$_PRE_OUT"
112-
else
113-
y-cluster provision -c "$CONFIG"
114-
fi
79+
# y-cluster v0.3.5 added a host-side /readyz probe between the
80+
# in-container kubeconfig appearing and "k3s ready" being declared,
81+
# closing the docker port-forward race that made the next step
82+
# (envoy-gateway install via kubectl apply) fail with "dial tcp
83+
# 127.0.0.1:6443: connect: connection refused" (Yolean/y-cluster#12).
84+
# v0.3.6 fixed a separate silent-drop in the docker provider where
85+
# moby v1.54+ sent every PortBinding's HostIp as the empty string
86+
# (zero netip.Addr) and Docker Engine 28 dropped them all, so
87+
# NetworkSettings.Ports came back empty (Yolean/y-cluster#15).
88+
y-cluster provision -c "$CONFIG"
11589

11690
# Label nodes that don't yet have a cluster identity. Selector form
11791
# avoids overwriting an existing label on a misclaimed cluster.

y-kustomize/y-kustomize-deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ spec:
2020
runAsUser: 65532
2121
containers:
2222
- name: y-kustomize
23-
image: ghcr.io/yolean/y-cluster:v0.3.4@sha256:741446c68b5454355260965141f6d0bb3e68f8bd9cec78ba3af5996040447d0e
23+
image: ghcr.io/yolean/y-cluster:v0.3.6@sha256:20ee9c0d83e69ef88a92f11392c82d2eba41eb745415661109fb399783c77b26
2424
command: ["/usr/local/bin/y-cluster"]
2525
args:
2626
- serve

0 commit comments

Comments
 (0)