Skip to content

Commit 7d4e2b5

Browse files
divyansh42claude
andcommitted
fix: use latest Tekton releases and fix ConfigMap timing issue
Update E2E test setup to use latest stable releases for both Triggers and Pipelines, and fix the ConfigMap timing issue that causes triggers controller to crash: **Pipelines:** - Remove v1.12.0 pin and use latest release - Remove TODO comment about switching back to latest **Triggers:** - Skip nightly builds and use latest release directly - Fix ConfigMap timing: apply interceptors.yaml BEFORE release.yaml **Root Cause:** The triggers controller was crashing with: `configmap "config-triggers-core-interceptors" not found` The ConfigMap is in interceptors.yaml, but when we applied release.yaml first, Kubernetes immediately started the controller pods. They crashed before interceptors.yaml could be applied. **Fix:** 1. Apply interceptors.yaml first (creates ConfigMap/Secret; ClusterInterceptor resources fail without CRD) 2. Apply release.yaml (controller now finds ConfigMap and starts successfully) 3. Wait for ClusterInterceptor CRD to be established 4. Apply interceptors.yaml again (ClusterInterceptor resources now succeed) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 667b551 commit 7d4e2b5

1 file changed

Lines changed: 19 additions & 20 deletions

File tree

‎test/e2e-common.sh‎

Lines changed: 19 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -134,11 +134,8 @@ function install_pipeline_crd() {
134134
if [[ -n ${RELEASE_YAML_PIPELINE} ]];then
135135
latestreleaseyaml=${RELEASE_YAML_PIPELINE}
136136
else
137-
138-
# Pin to v1.12.0 to avoid spurious termination message WARN in step logs (tektoncd/pipeline#10159).
139-
# The fix (tektoncd/pipeline#10160) is merged but not yet in a released version.
140-
# TODO: switch back to latest once a pipeline release includes the fix.
141-
latestreleaseyaml=https://infra.tekton.dev/tekton-releases/pipeline/previous/v1.12.0/release.yaml
137+
# Use latest release version
138+
latestreleaseyaml="https://infra.tekton.dev/tekton-releases/pipeline/latest/release.yaml"
142139
fi
143140
[[ -z ${latestreleaseyaml} ]] && fail_test "Could not get latest released release.yaml"
144141
kubectl apply -f ${latestreleaseyaml} ||
@@ -160,34 +157,36 @@ function install_triggers_crd() {
160157
if [[ -n ${RELEASE_YAML_TRIGGERS} ]];then
161158
latestreleaseyaml=${RELEASE_YAML_TRIGGERS}
162159
else
163-
# First try to install latestreleaseyaml from nightly
164-
curl -o/dev/null -s -LI -f https://infra.tekton.dev/tekton-releases-nightly/triggers/latest/release.yaml &&
165-
latestreleaseyaml=https://infra.tekton.dev/tekton-releases-nightly/triggers/latest/release.yaml
166-
167-
# If for whatever reason the nightly release wasnt there (nightly ci failure?), try the released version
168-
[[ -z ${latestreleaseyaml} ]] && latestreleaseyaml="https://infra.tekton.dev/tekton-releases/triggers/latest/release.yaml"
160+
# Use latest release version (not nightly)
161+
latestreleaseyaml="https://infra.tekton.dev/tekton-releases/triggers/latest/release.yaml"
169162
fi
170163
if [[ -n ${RELEASE_YAML_TRIGGERS_INTERCEPTORS} ]];then
171164
latestinterceptorsyaml=${RELEASE_YAML_TRIGGERS_INTERCEPTORS}
172165
else
173-
# First try to install latest interceptors from nightly
174-
curl -o/dev/null -s -LI -f https://infra.tekton.dev/tekton-releases-nightly/triggers/latest/interceptors.yaml &&
175-
latestinterceptorsyaml=https://infra.tekton.dev/tekton-releases-nightly/triggers/latest/interceptors.yaml
176-
177-
# If for whatever reason the nightly release wasnt there (nightly ci failure?), try the released version
178-
[[ -z ${latestinterceptorsyaml} ]] && latestinterceptorsyaml="https://infra.tekton.dev/tekton-releases/triggers/latest/interceptors.yaml"
166+
# Use latest release version (not nightly)
167+
latestinterceptorsyaml="https://infra.tekton.dev/tekton-releases/triggers/latest/interceptors.yaml"
179168
fi
180169
[[ -z ${latestreleaseyaml} ]] && fail_test "Could not get latest released release.yaml"
181170
[[ -z ${latestinterceptorsyaml} ]] && fail_test "Could not get latest released interceptors.yaml"
171+
172+
# Apply interceptors.yaml first to create ConfigMap that triggers controller needs
173+
# ClusterInterceptor resources will fail (CRD doesn't exist yet) but ConfigMap/Secret will be created
174+
kubectl apply -f ${latestinterceptorsyaml} 2>/dev/null || true
175+
176+
# Apply release.yaml to install CRDs and controllers
177+
# Controller will now find the ConfigMap and start successfully
182178
kubectl apply -f ${latestreleaseyaml} ||
183179
fail_test "Build triggers installation failed"
184180

185-
# Wait for pods to be running in the namespaces we are deploying to
186-
wait_until_pods_running tekton-pipelines || fail_test "Tekton Triggers did not come up"
187-
181+
# Wait for CRD to be established
188182
kubectl wait --for=condition=Established --timeout=30s crds/clusterinterceptors.triggers.tekton.dev || fail_test "cluster interceptors never established"
183+
184+
# Apply interceptors.yaml again to create ClusterInterceptor resources (now that CRD exists)
189185
kubectl apply -f ${latestinterceptorsyaml} || fail_test "Interceptors installation failed"
190186

187+
# Wait for pods to be running in the namespaces we are deploying to
188+
wait_until_pods_running tekton-pipelines || fail_test "Tekton Triggers did not come up"
189+
191190
# Make sure that eveything is cleaned up in the current namespace.
192191
for res in eventlistener triggertemplate triggerbinding clustertriggerbinding; do
193192
kubectl delete --ignore-not-found=true ${res}.triggers.tekton.dev --all

0 commit comments

Comments
 (0)