Skip to content

Commit 6a82e22

Browse files
Yolean k8s-qaclaude
andcommitted
y-cluster: pin v0.3.3 -> v0.3.4, drop dead auto-pull workaround
v0.3.4 ships the docker auto-pull fix (a959eb0) responding to ISSUE_DOCKER_PROVIDER_NO_AUTO_PULL.md: ContainerCreate now does an ImagePull first when the image isn't on disk. The acceptance script's pre-pull fallback (scrape image ref + docker pull on the "No such image" failure path) is dead code on v0.3.4 and is removed in the same commit. The other docker-provider race (ISSUE_DOCKER_K3S_READY_BEFORE_APISERVER.md) is not addressed in v0.3.4 -- the connect-refused retry stays in place until y-cluster strengthens the readiness check on the host's :6443 port. Both pins land at the same SHA (host wrapper + y-kustomize Deployment image) so a fresh provision and the in-cluster Deployment serve from one binary. Verified locally with cold image cache: provision auto-pulls, validate-ystack reports 37 passed, 0 failed. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent ef9ba96 commit 6a82e22

3 files changed

Lines changed: 18 additions & 30 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.3
159+
version: 0.3.4
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: 28b1059ba2757e530dd5909820e5acb212dc0769873e94cdcdfdbce710c3a639
164-
darwin_arm64: ccf3c8c2251ff8fda33db76d7ef4c76d06122ad34f0a20902e2d79ca2817840a
165-
linux_amd64: 652711a28b9e74e4590d1e7f5bee5a592ed7f0d2617cffb67a58cb15baa9db6a
166-
linux_arm64: a504471dd37d8bba17e94529d67389cf3895f1e13a13507e26c4c03a37ee697c
163+
darwin_amd64: fde0f0b7a7575413036590d9d18d994d0e4f90c484e2a839fe148a85a8bf84da
164+
darwin_arm64: 338c5429911dfe7bf46acd829e6961116857ec00602a134549852e3fe591152c
165+
linux_amd64: 71c0877736eb39d954a3955456a84416af834b1d4f56639f516c106066512c40
166+
linux_arm64: 1b2d99af1cc99354a270108b4ec393d763e34531d78d2d76a1ad3bc0b34f7700
167167

168168
contain:
169169
version: 0.9.1

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

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -76,37 +76,25 @@ cleanup
7676

7777
# --- provision (no converge) ---
7878
#
79-
# y-cluster v0.3.3's docker provider has two known races (filed
80-
# against y-cluster as ISSUE_DOCKER_PROVIDER_NO_AUTO_PULL.md and
81-
# ISSUE_DOCKER_K3S_READY_BEFORE_APISERVER.md):
82-
#
83-
# 1. ContainerCreate is called without a prior `docker pull`,
84-
# so a fresh host errors with "No such image". Workaround:
85-
# scrape the image ref from the failed log, pull, retry.
86-
# 2. The "k3s ready" signal fires when /etc/rancher/k3s/k3s.yaml
87-
# exists in the container, but the host's :6443 port forward
88-
# isn't always reachable yet -- the next step
89-
# (envoy-gateway install via kubectl apply) fails with
90-
# "dial tcp 127.0.0.1:6443: connect: connection refused".
91-
# Workaround: detect the connect-refused error, sleep, retry.
92-
#
93-
# Both branches reduce to a single `y-cluster provision -c "$CONFIG"`
94-
# once y-cluster ships fixes.
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.
9589
if [ "$(grep -E '^provider:' "$CONFIG/y-cluster-provision.yaml" | awk '{print $2}')" = "docker" ]; then
9690
_PRE_OUT=$(mktemp -t ystack-acceptance-provision.XXXXXX)
9791
_attempt=1
9892
while [ "$_attempt" -le 4 ]; do
9993
if y-cluster provision -c "$CONFIG" 2>&1 | tee "$_PRE_OUT"; then
10094
break
10195
fi
102-
if grep -q 'No such image' "$_PRE_OUT"; then
103-
_IMG=$(grep -oE 'ghcr\.io/yolean/k3s:[a-zA-Z0-9._-]+' "$_PRE_OUT" | head -1)
104-
if [ -n "$_IMG" ]; then
105-
echo "# Pre-pulling $_IMG (y-cluster v0.3.3 docker provider does not auto-pull)"
106-
docker pull "$_IMG"
107-
fi
108-
elif grep -q 'dial tcp 127.0.0.1:6443: connect: connection refused' "$_PRE_OUT"; then
109-
echo "# k3s apiserver host port not reachable yet (y-cluster v0.3.3 readiness race); sleeping 10s before retry"
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"
11098
sleep 10
11199
else
112100
cat "$_PRE_OUT" >&2

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.3@sha256:34b95376d1aecbfa08020aacc61d3f25d9c7cafe1e5b6c3321f9ce9ee59b54d2
23+
image: ghcr.io/yolean/y-cluster:v0.3.4@sha256:741446c68b5454355260965141f6d0bb3e68f8bd9cec78ba3af5996040447d0e
2424
command: ["/usr/local/bin/y-cluster"]
2525
args:
2626
- serve

0 commit comments

Comments
 (0)