kubernetes/cmd/kubeadm
Lubomir I. Ivanov c29450eb00 kubeadm: apply retries to all API calls in idempotency.go
The idempotency.go (perhaps not so accurately named) contains
API calls that kubeadm does against an API server using client-go.

Some users seem to have unstable setups where for unknown reasons
the API server can be unavailable or refuse to respond as expected.

Use PollUntilContextTimeout in all exported functions to ensure
such API calls are all retry-able.

NOTE: The context passed to PollUntilContextTimeout is not propagated
in the polled function. Instead the poll function creates it's own
context 'ctx := context.Background()', this is to avoid
breaking expectations on the side of the callers, that expect
a certain type of error and not "context timeout" errors.

Additional changes:
- Make all context.TODO() -> context.Background()
- Update all unit tests and make sure during testing the retry
interval and timeout are short. Test coverage of idempotency.go
is at ~97%.
- Remove the TestMutateConfigMapWithConflict test. It does not
contribute much, because conflict handling is done at the API,
server side, not on the side of kubeadm. This simulating this is not
needed.
2024-02-18 13:14:32 +02:00
..
app kubeadm: apply retries to all API calls in idempotency.go 2024-02-18 13:14:32 +02:00
test kubeadm: fix flaky test TestRunRenewCommands 2024-01-01 20:47:03 +08:00
.import-restrictions kubeadm: update .import-restrictions 2023-01-07 23:46:02 +08:00
kubeadm.go alias kubeadmutil for k8s.io/kubernetes/cmd/kubeadm/app/util 2019-12-27 17:57:04 +08:00
OWNERS kubeadm: Nominate myself (chendave) as kubeadm approver 2023-09-21 15:00:53 +08:00