Commit Graph

3346 Commits

Author SHA1 Message Date
Kevin Delgado
df2768123d FieldValidation tests for endpoints apiserver and benchmarks for integration tests (#107848)
* wip, working post-strict-yaml

* wip, merge-patch and json-patch tests added

* added SMP tests

* cleanup

* add benchmarks

* more detailed test failure message

* start adding field validation integration benchmarks

* use valid input for benchmarking

* fix remaining integration benchmarks

* benchmarking feedback

* fix endpoints benchmarking

* remove unused vars
2022-02-16 21:19:49 -08:00
Kubernetes Prow Robot
a37b6fc8b4 Merge pull request #108138 from liggitt/v1beta1-selector
Revert v1beta1 PodDisruptionBudget selector patchStrategy to pre-1.21 behavior
2022-02-15 16:25:18 -08:00
Jordan Liggitt
33fc0b9651 Add PDB selector patch integration test 2022-02-15 14:45:22 -05:00
Wojciech Tyczyński
b62774f2f7 Couple remaining SelfLink references cleanup 2022-02-14 18:35:54 +01:00
Wojciech Tyczyński
41ee6a3e44 Remove selflink integration tests 2022-02-14 11:11:56 +01:00
Kubernetes Prow Robot
21c0f6f6ff Merge pull request #107677 from pohly/scheduler-integration-benchmark
scheduler integration benchmark improvements
2022-02-14 01:23:28 -08:00
Patrick Ohly
e1e84c8e5f scheduler_perf: run with -v=0 by default
This provides a mechanism for overriding the forced increase of the klog
verbosity to 4 when starting the apiserver and uses that for the scheduler_perf
benchmark. Other tests run as before.

A global variable was used because adding an explicit parameter to several
helper functions would have caused a lot of code churn (test ->
integration/util.StartApiserver ->
integration/framework.RunAnAPIServerUsingServer ->
integration/framework.startAPIServerOrDie).
2022-02-11 16:58:33 +01:00
Kubernetes Prow Robot
e74c42aaf2 Merge pull request #107880 from liggitt/kubectl-auth-token
Add command to request a bound service account token
2022-02-09 14:10:01 -08:00
Jordan Liggitt
19d71bb5d5 Validate and populate metadata fields in token request 2022-02-09 14:05:53 -05:00
Kubernetes Prow Robot
24e5d1fdb7 Merge pull request #107432 from denkensk/graduate-nonpreemptingpriority-to-ga
Graduate NonPreemptingPriority to GA
2022-02-08 11:05:03 -08:00
Kubernetes Prow Robot
6ef0f3f620 Merge pull request #103642 from kerthcet/refactor/unreserve_test
refactor unreserve test
2022-02-08 02:36:53 -08:00
Alex Wang
541907334e graduate nonpreemptingpriority to ga 2022-02-08 18:11:23 +08:00
kerthcet
8243167013 refactor unreserve_test
Signed-off-by: kerthcet <kerthcet@gmail.com>
2022-02-08 11:37:56 +08:00
Patrick Ohly
c62d7407c8 scheduler_perf: dump test data when writing it failed
Occasionally, writing as JSON failed because a NaN float couldn't be
encoded. The extended log message helps understand where that comes from, for
example:

F0120 20:24:45.515745  511835 scheduler_perf_test.go:540] BenchmarkPerfScheduling: unable to write measured data {Version:v1 DataItems:[{Data:map[Average:35.714285714285715 Perc50:2 Perc90:36 Perc95:412 Perc99:412] Unit:pods/s Labels:map[Metric:SchedulingThroughput Name:BenchmarkPerfScheduling/PreemptionPVs/500Nodes/namespace-2]} {Data:map[Average:27.863967530999993 Perc50:13.925925925925926 Perc90:30.06711409395973 Perc95:31.85682326621924 Perc99:704] Unit:ms Labels:map[Metric:scheduler_e2e_scheduling_duration_seconds Name:BenchmarkPerfScheduling/PreemptionPVs/500Nodes/namespace-2]} {Data:map[Average:11915.651577744 Perc50:15168.796680497926 Perc90:19417.759336099585 Perc95:19948.87966804979 Perc99:20373.77593360996] Unit:ms Labels:map[Metric:scheduler_pod_scheduling_duration_seconds Name:BenchmarkPerfScheduling/PreemptionPVs/500Nodes/namespace-2]} {Data:map[Average:1.1865832049999983 Perc50:0.7636363636363637 Perc90:2.891903719912473 Perc95:3.066958424507659 Perc99:5.333333333333334] Unit:ms Labels:map[Metric:scheduler_framework_extension_point_duration_seconds Name:BenchmarkPerfScheduling/PreemptionPVs/500Nodes/namespace-2 extension_point:Filter]} {Data:map[Average:NaN Perc50:NaN Perc90:NaN Perc95:NaN Perc99:NaN] Unit:ms Labels:map[Metric:scheduler_framework_extension_point_duration_seconds Name:BenchmarkPerfScheduling/PreemptionPVs/500Nodes/namespace-2 extension_point:Score]}]}: json: unsupported value: NaN
2022-02-07 08:59:19 +01:00
Patrick Ohly
8d44b819b3 scheduler_perf: avoid ambiguous test names
"-bench=PerfScheduling/Preemption/500Nodes" ran both the
PerfScheduling/Preemption/500Nodes and the
PerfScheduling/PreemptionPVs/500Nodes benchmark.

This can be avoided by choosing names where none is the prefix of another.
2022-02-07 08:59:19 +01:00
Patrick Ohly
259a8ad0b7 test: allow controlling etcd log level
When running an integration test that measures performance, like for example
test/integration/scheduler_perf, running etcd with debug level output is
undesirable because it creates additional load on the system and isn't
realistic.

The default is still "debug", but ETCD_LOGLEVEL=warn can be used to override
that.
2022-02-07 08:59:19 +01:00
ravisantoshgudimetla
65ff81757d Wire contexts to Disruption controllers 2022-02-04 10:32:04 -05:00
ahrtr
fe95aa614c io/ioutil has already been deprecated in golang 1.16, so replace all ioutil with io and os 2022-02-03 05:32:12 +08:00
Jyoti Mahapatra
a1b52fb17a extend sa token if audience is apiserver (#105954)
Signed-off-by: Jyoti Mahapatra <jyotima@amazon.com>
2022-01-31 16:01:52 -08:00
Tim Hockin
e927ce85b6 service REST: Call Decorator(old) on update path
This is causing a bug when upgrading from older releases to 1.23 because
of Service's maybe-too-clever default-on-read logic.

Service depends on `Decorator()` to be called upon read, to
back-populate old saved objects which do not have `.clusterIPs[]` set.
This works on read, but the cache saves the pre-decorated type (as it is
documented)

In 1.23, this code was refactored and it seems some edge-case handling
was inadvertently removed (I have not confirmed exactly what happened).

Test by aojea
2022-01-30 11:25:17 -08:00
Kubernetes Prow Robot
83ca745412 Merge pull request #107797 from tkashem/revert-107456
Revert "Merge pull request #107456 from tkashem/apf-ssa"
2022-01-27 23:14:30 -08:00
Abu Kashem
8fb3333863 Revert "Merge pull request #107456 from tkashem/apf-ssa"
This reverts commit 6faa4f0010, reversing
changes made to 33a2c50bce.
2022-01-26 13:54:26 -05:00
Jeffrey Ying
ecb9b620fe Revert "Populate OpenAPI in all integration tests" 2022-01-26 13:30:03 -05:00
Kubernetes Prow Robot
6a1de6b686 Merge pull request #107765 from Jefftree/ssa-integration-enable
Populate OpenAPI in all integration tests
2022-01-25 18:18:37 -08:00
Jefftree
eb8f6fe0f9 Populate OpenAPI in all integration tests 2022-01-25 14:16:31 -08:00
Kubernetes Prow Robot
1f05c78350 Merge pull request #107700 from sanposhiho/fix-error-log-namespace-not-found
Create namespace for Pod not to occur error log of namespace not-found
2022-01-25 13:34:05 -08:00
Kubernetes Prow Robot
804630ed24 Merge pull request #107636 from kerthcet/refactor/initRegistryAndConfig
refactor initRegistryAndConfig function
2022-01-25 10:20:30 -08:00
kerthcet
fdaea59465 refactor initRegistryAndConfig function
Signed-off-by: kerthcet <kerthcet@gmail.com>
2022-01-26 01:16:13 +08:00
sanposhiho
d8840405e2 Create namespace for Pod not to occur error log of namespace not-found 2022-01-26 00:39:12 +09:00
Kubernetes Prow Robot
321b411784 Merge pull request #107088 from joejulian/dry-run-metadata
strip dry-run metadata unwanted fields
2022-01-24 14:31:15 -08:00
Kubernetes Prow Robot
2a2b294c99 Merge pull request #107644 from liggitt/integration-test-user-groups
Fix up integration test user groups
2022-01-22 04:17:52 -08:00
Kubernetes Prow Robot
6faa4f0010 Merge pull request #107456 from tkashem/apf-ssa
apf: change controller to use SSA for patches
2022-01-20 13:44:29 -08:00
Abu Kashem
d9f4d6507b apf: change controller to use SSA for patches 2022-01-19 14:56:53 -05:00
Jordan Liggitt
57e0c5969b Fix integration test authenticators to include AllAuthenticated group 2022-01-19 13:21:05 -05:00
Kubernetes Prow Robot
e9e669aa60 Merge pull request #107276 from jlsong01/fix_flake_TestQuotaLimitService
Fix flake on TestQuotaLimitService
2022-01-19 09:38:05 -08:00
Kubernetes Prow Robot
657146e775 Merge pull request #107572 from MikeSpreitzer/add-flowschema-condition-test
Test isolation among FlowSchemaStatus Conditions
2022-01-19 06:34:06 -08:00
jlsong01
3006aa534b fix flake on TestQuotaLimitService 2022-01-19 21:58:57 +08:00
Kubernetes Prow Robot
6989e2169f Merge pull request #107564 from aojea/funnyips_etcd_data
integration test: API allow IPs with leading zeros
2022-01-18 17:18:05 -08:00
Antonio Ojea
ea130181a3 test integration: API allow IPs with leading zeros 2022-01-18 09:45:54 +01:00
Mike Spreitzer
23af47395b Test isolation among FlowSchemaStatus Conditions 2022-01-17 15:43:37 -05:00
Kubernetes Prow Robot
a4931cc411 Merge pull request #107551 from wojtek-t/remove_unused_selflink_test_references
Remove unused selflink references in different testing-related files
2022-01-14 16:49:40 -08:00
Jiahui Feng
c56bbda368 fix containers order after applying
to be appending instead of prepending.
2022-01-14 11:15:54 -08:00
Wojciech Tyczyński
551790729f Remove selflink references in different testing-related files 2022-01-14 12:58:05 +01:00
Kubernetes Prow Robot
dad0c48959 Merge pull request #106594 from pohly/log-benchmark
logs: add benchmark
2022-01-12 18:01:08 -08:00
Kubernetes Prow Robot
5bfc4286ee Merge pull request #106943 from wojtek-t/graduate_watch_resumption_to_ga
Graduate EfficientWatchResumption feature to GA
2022-01-12 06:06:36 -08:00
Patrick Ohly
a5a241e0df logs: update expected output for multi-line test case
The multiline support has been merged while this benchmark was written. We now
get the output that we want, with line breaks.
2022-01-11 09:57:03 +01:00
Patrick Ohly
25c646cbdd json: never call fsync for stdout or stderr
We don't need to worry about data loss once the data has been written to an
output stream. Calling fsync unnecessarily has been the reason for performance
issues in the past.
2022-01-11 09:56:22 +01:00
Patrick Ohly
9a867c555c logs: benchmark write performance
The recent regression https://github.com/kubernetes/kubernetes/issues/107033
shows that we need a way to automatically measure different logging
configurations (structured text, JSON with and without split streams) under
realistic conditions (time stamping, caller identification).

System calls may affect the performance and thus writing into actual files is
useful. A temp dir under /tmp (usually a tmpfs) is used, so the actual IO
bandwidth shouldn't affect the outcome. The "normal" json.Factory code is used
to construct the JSON logger when we have actual files that can be set as
os.Stderr and os.Stdout, thus making this as realistic as possible.

When discarding the output instead of writing it, the focus is more on the rest
of the pipeline and changes there can be investigated more reliably.

The benchmarks automatically gather "log entries per second" and "bytes per
second", which is useful to know when considering requirements like the ones
from https://github.com/kubernetes/kubernetes/issues/107029.
2022-01-11 09:56:22 +01:00
Patrick Ohly
b8501fc10b logs: work around logcheck
logcheck complains:
Additional arguments to ErrorS should always be Key Value pairs. Please check if there is any key or value missing.

That check is intentional, but not applicable here. The check can be worked
around by calling the functions through variables.
2022-01-11 09:56:22 +01:00
Patrick Ohly
072859c967 logs: create separate test/integration directory
The benchmark depends on k8s.io/api (for v1.Container). Such a dependency is
not desirable for k8s.io/component-base/logs, even if it's just for
testing. The solution is to create a separate directory where such a dependency
isn't a problem.

The alternative, a separate package with its own go.mod file under
k8s.io/component-base/logs wouldd have been more complicated to maintain (yet
another go.mod file and different whitelisted dependencies).
2022-01-11 09:56:22 +01:00