The hard-coded verbosity in `make test-e2e-node` is 4
(17e2eda611/hack/make-rules/test-e2e-node.sh (L248)).
Pre-pending -v4 emulates that behavior, with the difference that an explicit
-v passed by the caller (typically kubetest2) could be used to override it.
`make test-e2e-node` sets the -results-dir based on the ARTIFACTS Prow job env
variable. When e2e_node.test gets invoked directly, it should do the same,
otherwise JUnit and log files are not captured for the job.
The steady state pod creation test cases do not keep the scheduler 100% busy,
leading to a measured pod scheduling rate which is partly influence by how
quickly new pods get created. This is not necessarily bad because it measures
the whole "pod created -> claim created -> events observed -> scheduled" path,
but it is a bit unexpected.
Creating the next pod immediately after one pod got scheduled achieves better
parallelism between producer (tester) and consumer (scheduler), which is
visible as a higher scheduling rate. This is better because performance
improvements in the scheduler are more visible. Also, the state of the cluster
remains closer to the initial state and the code is simpler.
As this changes what is being measured, performance results are different. For
example, PerfScheduling/SteadyStateClusterResourceClaimTemplate/empty_500nodes
yields 64% higher SchedulingThroughput/Average.
StorageCapacityScoring was introduced as alpha in v1.33 (default: false)
and is now promoted to beta (default: true).
Update tests to account for the new default behavior: when
StorageCapacityScoring is enabled, SetDefaults_VolumeBindingArgs now
populates Shape in VolumeBindingArgs, which existing tests did not
expect.
- Add default Shape to expected VolumeBindingArgs in test fixtures
and explicit test cases
- Disable StorageCapacityScoring in TestValidateVolumeBindingArgs
cases that only test BindTimeoutSeconds validation
- Explicitly set EnableStorageCapacityScoring: true in
TestSchedulerSchedulePod's feature.Features struct
- Strip Shape from VolumeBinding args in Test_UnionedGVKs when
using emulation version 1.33 or 1.34 (where StorageCapacityScoring
is alpha and disabled by default)
Some code in test/utils/runners.go was only used by scheduler_perf.
Therefore it belongs under test/integration/scheduler_perf where it can be
maintained by SIG Scheduling.
The new version includes a generic /envvar endpoint in netexec that
reads any named environment variable, enabling e2e tests to retrieve
spec.nodeName via the Downward API instead of relying on os.Hostname().
Ref: https://github.com/kubernetes/k8s.io/pull/9608
Signed-off-by: Jitesh Kumar <jiteshkumardj@gmail.com>
This test verifies that pods with pre-allocated CPUs (from the checkpoint file)
are not rejected after kubelet restart when SMT alignment is enabled.
Regression test for the fix where the container presence check was moved
before the SMT alignment check.
The key is to request enough CPUs so that if pre-allocated CPUs are not
counted, the SMT alignment check would fail due to insufficient available
physical CPUs.
Calculate the maximum SMT-aligned CPUs we can request
We need to request most of the allocatable CPUs to trigger the bug.
Signed-off-by: Talor Itzhak <titzhak@redhat.com>
Replace the hardcoded /nodename endpoint (which exposed only NODE_NAME)
with a parameterized /envvar?var=<VAR> endpoint that reads any
environment variable by name, following the pattern suggested in
kubernetes/kubernetes#138737.
- HTTP: GET /envvar?var=<VAR> returns the plain-text value; 400 if the
var parameter is missing or empty; 500 with the variable name quoted
if the variable is not set
- UDP/SCTP: send "envvar <VAR_NAME>" as the command; returns the value
or empty string if unset (no error path over datagram transports)
- os.LookupEnv used throughout to distinguish unset from set-to-empty
- Bumps agnhost to 2.64.0
The endpoint follows the pattern of /header?key=X-Forwarded-For —
generic read access to a named datum — and avoids hardcoding NODE_NAME
as a special case. The primary consumer will be e2e tests that inject
NODE_NAME via the Downward API (spec.nodeName fieldRef) to obtain a
reliable node identifier on hostNetwork pods regardless of
--hostname-override.
Signed-off-by: Jitesh Kumar <jiteshkumardj@gmail.com>