Commit Graph

17248 Commits

Author SHA1 Message Date
Mark Rossetti
534f052a8d Updating pause image refernces to 3.9
Signed-off-by: Mark Rossetti <marosset@microsoft.com>
2022-11-14 10:24:54 -08:00
Kubernetes Prow Robot
d1c0171aed Merge pull request #111023 from pohly/dynamic-resource-allocation
dynamic resource allocation
2022-11-11 16:21:56 -08:00
Patrick Ohly
b2c39798f4 staging dra: use MutationCache in controller
Directly after modifying a ResourceClaim in the apiserver, the locally cached
copy is outdated until the informer receives the update. If any operation looks
at the claim during that time frame, it will act based on stale
information. For example, it might try to allocate again. If that works because
of idempotency, then the following update operation fails with a conflict
error.

This is harmless, but leads to confusing log output. It can be avoided by
keeping a copy of the updated claim and using that instead of the one from the
informer cache.
2022-11-12 00:12:03 +01:00
Patrick Ohly
bb040efd84 staging: generic dynamic resource allocation driver code
These helper packages implement the parts of a dynamic resource allocation
driver that are generic and can be used by the in-tree test driver as well as
out-of-tree vendor drivers.

Functional options make it possible to treat some parameters as
optional (logger) and extend the API later on.
2022-11-12 00:11:35 +01:00
Kubernetes Prow Robot
263ba476ba Merge pull request #113764 from Jefftree/foobar
Fix bugs with aggregated discovery
2022-11-11 13:11:56 -08:00
Ed Bartosh
ae0f38437c kubelet: add support for dynamic resource allocation
Dependencies need to be updated to use
github.com/container-orchestrated-devices/container-device-interface.

It's not decided yet whether we will implement Topology support
for DRA or not. Not having any toppology-related code
will help to avoid wrong impression that DRA is used as a hint
provider for the Topology Manager.
2022-11-11 21:58:03 +01:00
Alexander Zielenski
c43105d0dc fix apiregistration priority
v1 discovery always has apiregistration first. this rigs the priority to be greater than maximum so it is guaranteed to be first in the list
2022-11-11 11:19:31 -08:00
Kubernetes Prow Robot
e4d46148de Merge pull request #113826 from jsafrane/add-openstack
Add CSI migration of OpenStack Cinder volumes
2022-11-11 11:00:07 -08:00
Kubernetes Prow Robot
cc704f9778 Merge pull request #113375 from atiratree/PodHealthyPolicy-api
api: add unhealthyPodEvictionPolicy for PDBs
2022-11-11 04:02:10 -08:00
Jan Safranek
6005c3b512 Remove OpenStack cloud provider
And keep OpenStack Cinder CSI translation
2022-11-11 12:04:55 +01:00
Alexander Zielenski
3c68fe6596 fix aggregated discovery version sorting
add test for level based priorities
2022-11-10 17:16:14 -08:00
Jefftree
d74b6b2cfa fix dropped subresources
some subresources were not properly included in the array due to pointers becoming stale over a resize
2022-11-10 17:16:14 -08:00
Jefftree
c9b3488400 add aggregated /apis handler for genericapiserver
so that aggregated-apiservers can also take advantage. discovered by e2e tests with feature enabled
2022-11-10 17:16:12 -08:00
Alexander Zielenski
1550655336 fix aggregated discovery legacy fallback
due to redesign where we changed from new endpoint to /apis. The expected error was not also changed.

Caught by e2e tests when feature enabled. Should have been caught by unit test first but it was implemented without root /apis. Unit test also fixed
2022-11-10 15:39:20 -08:00
Filip Křepinský
3e3912467a generated 2022-11-10 23:32:27 +01:00
Filip Křepinský
a429797f2e api: add UnhealthyPodEvictionPolicy for PDBs 2022-11-10 23:25:42 +01:00
Kubernetes Prow Robot
763f68ef77 Merge pull request #113819 from soltysh/events_beta
Move events command to top level
2022-11-10 11:33:14 -08:00
Patrick Ohly
59d46c026f staging: add ResourceClaim support code
This is similar to the support code for generic ephemeral inline volumes.
Differences:
- to avoid stuttering, the functions are just resourceclaim.Name and
  resourceclaim.IsForPod
- resourceclaim.Name returns the right name for both cases (template
  and reference), which will simplify some code

Other helper functions check some simple status conditions.
2022-11-10 20:23:50 +01:00
Patrick Ohly
76cb805af2 staging: create dynamic resource allocation repo
This will be used for different individual packages. A separate repo
is better than reusing something like component-helpers because dependencies
will be different.
2022-11-10 20:23:50 +01:00
Patrick Ohly
ec06d2c1fd api: update testdata
This is the result of

   cd staging/src/k8s.io/api && UPDATE_COMPATIBILITY_FIXTURE_DATA=true go test ./...
2022-11-10 20:23:47 +01:00
Patrick Ohly
9683c60c05 api: generated files 2022-11-10 20:22:42 +01:00
Patrick Ohly
5cca60f0b8 api: dynamic resource allocation API
This adds a new resource.k8s.io API group with v1alpha1 as version. It contains
four new types: resource.ResourceClaim, resource.ResourceClass, resource.ResourceClaimTemplate, and
resource.PodScheduling.
2022-11-10 20:08:24 +01:00
Patrick Ohly
7d11b422e3 api: add resource claims to core API
The resource.k8s.io/ClaimTemplate only gets referenced by name, therefore the
changes to the core API are limited.
2022-11-10 20:08:24 +01:00
Jan Safranek
5b284a50b7 Revert "Remove references to openstack and cinder"
This reverts commit 9bbf01bae9.
2022-11-10 18:25:30 +01:00
Kubernetes Prow Robot
d94261e904 Merge pull request #113186 from ttakahashi21/KEP-3294
Introduce APIs to support CrossNamespaceSourceProvisioning
2022-11-10 08:06:54 -08:00
Maciej Szulik
50c7ebb5b4 Move events command to top level 2022-11-10 14:44:22 +01:00
Kubernetes Prow Robot
77b027936a Merge pull request #113803 from dashpole/revert-113693-apiserver_tracing_beta
Revert "Graduate API Server tracing to beta"
2022-11-09 23:36:53 -08:00
Cici Huang
2973712486 Rename FG to ValidatingAdmissionPolicy 2022-11-10 03:37:35 +00:00
Cici Huang
40c21dafcd Rename admission cel package to validatingadmissionpolicy 2022-11-10 03:37:30 +00:00
David Ashpole
e799fcdadd Revert "Graduate API Server tracing to beta" 2022-11-09 22:37:28 -05:00
Kubernetes Prow Robot
aeb8a8dfa4 Merge pull request #113758 from alexzielenski/readyFunc-refactor
use admission.Handler readyFunc for CEL Admission plugin
2022-11-09 18:24:53 -08:00
Alexander Zielenski
acf571fcbe add test for error when informers are not ready 2022-11-09 17:23:50 -08:00
Kubernetes Prow Robot
f87231003a Merge pull request #113475 from DangerOnTheRanger/validation-admission-metrics-integration
Validating admission metrics integration
2022-11-09 16:00:54 -08:00
Alexander Zielenski
df315f347c use existing admissionHandler readyfunc to wait for sync
is what other plugins do, and should decrease verbosity in logs
2022-11-09 15:28:35 -08:00
Takafumi Takahashi
cb12a2bc51 Generate code 2022-11-09 21:21:52 +00:00
Takafumi Takahashi
87c1ca88d4 Add API and validation for CrossNamespaceVolumeDataSource 2022-11-09 20:58:25 +00:00
Kubernetes Prow Robot
ff19efdf9b Merge pull request #112744 from pwschuurman/statefulset-slice-impl
Add implementation of KEP-3335, StatefulSetSlice
2022-11-09 11:12:28 -08:00
Kermit Alexander II
99494e6777 Add metrics integration. 2022-11-09 19:10:54 +00:00
Kubernetes Prow Robot
37e73b419e Merge pull request #113769 from bobbypage/bump-cadvisor-v046
deps: Bump cAdvisor to v0.46.0
2022-11-09 08:31:08 -08:00
Kubernetes Prow Robot
7e0e0c8ec3 Merge pull request #113360 from mimowo/handling-pod-failures-beta-enable
Enable the "Retriable and non-retriable pod failures for jobs" feature into beta
2022-11-09 08:30:24 -08:00
Kubernetes Prow Robot
b2c72feca8 Merge pull request #113693 from dashpole/apiserver_tracing_beta
Graduate API Server tracing to beta
2022-11-09 04:54:13 -08:00
Kubernetes Prow Robot
909af807ee Merge pull request #113721 from wojtek-t/storage_standard_test_naming_2
Standardize naming in generic storage watcher tests
2022-11-09 01:40:24 -08:00
Kubernetes Prow Robot
1193a9abcb Merge pull request #113485 from MikeSpreitzer/apf-borrowing
Add borrowing between priority levels in APF
2022-11-09 01:40:12 -08:00
Kubernetes Prow Robot
c288251818 Merge pull request #113599 from seans3/discovery-client-update
Aggregated discovery client
2022-11-09 00:08:24 -08:00
Kubernetes Prow Robot
8058e8eff8 Merge pull request #113171 from Jefftree/aggregated-discovery-generic
Aggregated discovery server changes
2022-11-09 00:08:12 -08:00
Michal Wozniak
c803892bd8 Enable the feature into beta 2022-11-09 09:02:40 +01:00
Kubernetes Prow Robot
18a78949bc Merge pull request #113760 from alexzielenski/admission-listwatch-flake
fix possible race of listwatch in admission test
2022-11-08 23:04:23 -08:00
Mike Spreitzer
feb4227788 apiserver: finish implementation of borrowing in APF
Also make some design changes exposed in testing and review.

Do not remove the ambiguous old metric
`apiserver_flowcontrol_request_concurrency_limit` because reviewers
though it is too early.  This creates a problem, that metric can not
keep both of its old meanings.  I chose the configured concurrency
limit.

Testing has revealed a design flaw, which concerns the initialization
of the seat demand state tracking.  The current design in the KEP is
as follows.

> Adjustment is also done on configuration change … For a newly
> introduced priority level, we set HighSeatDemand, AvgSeatDemand, and
> SmoothSeatDemand to NominalCL-LendableSD/2 and StDevSeatDemand to
> zero.

But this does not work out well at server startup.  As part of its
construction, the APF controller does a configuration change with zero
objects read, to initialize its request-handling state.  As always,
the two mandatory priority levels are implicitly added whenever they
are not read.  So this initial reconfig has one non-exempt priority
level, the mandatory one called catch-all --- and it gets its
SmoothSeatDemand initialized to the whole server concurrency limit.
From there it decays slowly, as per the regular design.  So for a
fairly long time, it appears to have a high demand and competes
strongly with the other priority levels.  Its Target is higher than
all the others, once they start to show up.  It properly gets a low
NominalCL once other levels show up, which actually makes it compete
harder for borrowing: it has an exceptionally high Target and a rather
low NominalCL.

I have considered the following fix.  The idea is that the designed
initialization is not appropriate before all the default objects are
read.  So the fix is to have a mode bit in the controller.  In the
initial state, those seat demand tracking variables are set to zero.
Once the config-producing controller detects that all the default
objects are pre-existing, it flips the mode bit.  In the later mode,
the seat demand tracking variables are initialized as originally
designed.

However, that still gives preferential treatment to the default
PriorityLevelConfiguration objects, over any that may be added later.

So I have made a universal and simpler fix: always initialize those
seat demand tracking variables to zero.  Even if a lot of load shows
up quickly, remember that adjustments are frequent (every 10 sec) and
the very next one will fully respond to that load.

Also: revise logging logic, to log at numerically lower V level when
there is a change.

Also: bug fix in float64close.

Also, separate imports in some file

Co-authored-by: Han Kang <hankang@google.com>
2022-11-08 21:51:44 -08:00
Kubernetes Prow Robot
20a9f7786a Merge pull request #110907 from pacoxu/kubectl-apply
kubectl apply: warning that kubectl will ignores no-namespaced resource in future release with namespace specified and with default pruneAllowlist
2022-11-08 20:14:12 -08:00
Kubernetes Prow Robot
0f8fb9f916 Merge pull request #112593 from dashanji/patch-1
Delete the useless line
2022-11-08 19:04:13 -08:00