owncloud / owncloud/ocis

[QA][CI] wait-cluster step times out waiting for KUBECONFIG file in multiple K8s API test suites

Open
#12,099 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
2.1k
Forks
274
Avg merge
2d 2h
Merged PRs (30d)
106

Description

**Branches:** master, nightly-8.0

---

### Summary

Multiple K8s-based API test suites are consistently failing at the `wait-cluster` CI step. The step times out (300s) while waiting for the `KUBECONFIG` file to be created, meaning the cluster never becomes ready (or the file is never written to the expected path).

---

### Affected Test Suites

| Test Suite | Drone Build | Step | Link |
|---|---|---|---|
| `API-contractAndLock-k8s` | #52157 | `wait-cluster` (step 3) | https://drone.owncloud.com/owncloud/ocis/52157/14/3 |
| `API-spaces-withRemotePhp-k8s` | #52157 | `wait-cluster` (step 3) | https://drone.owncloud.com/owncloud/ocis/52157/19/3 |
| `API-search2-k8s` | #52138 | `wait-cluster` (step 4) | https://drone.owncloud.com/owncloud/ocis/52138/26/4 |
| `API-spacesShares-withRemotePhp-k8s` | #52136 | `wait-cluster-ocis-server` (step 4) | https://drone.owncloud.com/owncloud/ocis/52136/21/4 |

---

### Failing Step

**Step name:** `wait-cluster`

**Actual failure log:**
```bash
export KUBECONFIG=kubeconfig-${DRONE_BUILD_NUMBER}.yaml
timeout 300 bash -c 'until test -f ${KUBECONFIG}; do sleep 1; done'
Terminated.
```

The `timeout 300` guard expires, meaning `kubeconfig-.yaml` was never written within the 300-second window.

---

### Expected Behavior

- The cluster setup step writes the kubeconfig file to `kubeconfig-${DRONE_BUILD_NUMBER}.yaml`.
- The `wait-cluster` step detects the file within the timeout window and proceeds.
- Test suite execution continues normally.

---

### Actual Behavior

- The `wait-cluster` step polls for the kubeconfig file every second for 300 seconds.
- The file is never created.
- The step is terminated with `Terminated.` after the 300s timeout.
- All downstream test steps are skipped as a result.

---

### Suggested Investigation Steps

1. Check the step that **precedes** `wait-cluster` — does the cluster creation step exit 0?
2. Verify the kubeconfig file write path matches `kubeconfig-${DRONE_BUILD_NUMBER}.yaml` exactly.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.