It's possible that a conflict will happen when
attempting to create a `ClusterRole` resource
without a randomized name given that is a cluster
scoped object and another object with same name
might exist. This commit fixes this issue by ensuring
the name of the `ClusterRole` is randomized. Additionally,
it adds clean up for the clusterRole and clusterRoleBinding.
- Add logic to wait until memory-pressure taint is cleared before running the test.
This reduces test flakiness due to lingering node conditions between retries.
DRA drivers must provide ResourceSlices using the v1beta2 API types.
The controller then converts under the hood to v1beta1 if needed, i.e.
drivers are compatible with Kubernetes 1.32 and Kubernetes 1.33, as
long as at least one beta API group is enabled.
Testing pivots from using v1beta1 as the main API to v1beta2, with only one
test case exercising v1beta1.
A user of the controller can register an error handler via the controller
options. For a kubelet plugin, the error handler is method in the interface
which must be implemented. This is a conscious choice to make DRA driver
developer aware that they should react intelligently to errors.
The controller will invoke that handler with all errors that it encounters
while syncing the desired set of slices. This includes validation errors from
the apiserver if the driver's slices are invalid. Dropped fields get reported
with a special DroppedFieldsError.
YAML files were patched with:
sed -i -e 's;registry.k8s.io/e2e-test-images/agnhost:2...;registry.k8s.io/e2e-test-images/agnhost:2.54;' $(git grep -l agnhost:2 test/e2e/testing-manifests/ test/fixtures/)
The test/images/kitten and test/images/nautilus base images are still on an
older agnhost because updating those is better left to the owners.
Which signal really cause the pause command to exit may be relevant to know.
By supporting the default /dev/termination-log, that information also shows up
in the pod status and then is often already shown in output of E2E tests for
unexpected pod failures.
Passing a constant value to gomega.Consistently means that it will not re-check
while running.
Found by linter after removing the suppression rule for the check. It was
disabled earlier because of a bug in the linter.
`terminationGracePeriodSeconds: 0` was a mistake, it bypasses the normal
pod shutdown in the kubelet.
The right way to shut down a pod quickly is to have it react to SIGTERM.
The busybox implementation of "sleep" doesn't. `agnhost pause` does,
so let's use that instead.
For E2E tests, the InfiniteSleepCommand was already change about a year ago to
react to SIGTERM, so the `terminationGracePeriodSeconds: 1` workaround is no
longer needed.
Use Pod Readiness Gates and Services to implement blue green deployment
strategies by setting the corresponding readines gate to influence the
service traffic.
Change-Id: I23e3b9a0440014f48a4612685055565fd8dff5ec
This commit updates pod resize tests to resolve an
issue where extraneous unused namespaces are created
when the tests are run. This happens because a new
instance of the test framework is generated when
looping over the test specs, registering BeforeEach each
time.
Some more out-dated reference to resource class. Keeping the pod running is
better for demonstrating the lifecycle of claims because it is actually
possible to see a claim in the allocated state.
github.com/client9/misspell was archived by the owner on Mar 26, 2025.
The golangci-lint team maintains a fork.
The newer code finds some misspellings which where missed before.
If the external jwt signer is enabled, publishing
OIDC discovery docs and keys fails because the PublicKeysGetter
is not wired correctly.
Set the public keys getter on startup so public key
discovery works in that case as well.
Trying to create a pod using a resourcequota whose status has not been
populated will result in api admission rejecting it with a 403
Forbidden. The pod resize tests do not wait/check to make sure the
resourcequota status is populated before trying to use the quota when
creating a pod, so in scenarious where either the test runs too fast, or
the resourcequota controller is too slow, the tests will fail.
This just makes the test wait up to a minute for the quota status to
populate. The status generation timing/logic gets tested separately in
test/e2e/apimachinery/resource_quota.go, and it waits a minute, so we
wait a minute, but in practice it takes at worst seconds.