Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

soltysh
Copy link

@soltysh soltysh commented Jun 28, 2024

No description provided.

aojea and others added 30 commits June 24, 2024 23:38
Fix non-semantic apply requests to ignore empty maps
Add field management support to fake client-go typed client
This is structurally compatible with the JSON behavior.
Update opentelemetry dependencies to the latest release.
During the debugging of kubernetes#123468
it became quite evident there are unexpected pods, leftovers from
the container_manager_test. But we need stronger isolation among test
to have good signal, so we add these safeguards (xref:
kubernetes#123468 (comment)
)

Signed-off-by: Francesco Romani <[email protected]>
…-status

Continue streaming kubelet logs when runtime is unavailable
…ent-read-from-cache-supports-pagination

apiserver/storage/cacher: consistent read from cache supports limit
Signed-off-by: Davanum Srinivas <[email protected]>
Technically an approver for cmd/kubeadm, so for this OWNERS
file there should be emeritus approver status.
This is a basic implementation of a first-in-first-out queue with unbounded
size. It's useful for cases where a channel with fixed size might deadlock.

The caller is responsible for locking.
Step simplifies using WithStep because it creates a local scope where the same
tCtx variable is the one with the step name.
This enables using the assume cache for cluster events.
This enables connecting the event handler for ResourceClaim to the assume
cache, which addresses a theoretic race condition.

It may also be useful for implementing the autoscaler support, because now
the autoscaler can modify the content of the cache.
This finishes the transition to the assume cache as source of truth for the
current set of claims.

The tests have to be adapted. It's not enough anymore to directly put objects
into the informer store because that doesn't change the assume cache
content. Instead, normal Create/Update calls and waiting for the cache update
are needed.
format.Object adds some white space in front of the value and a type identifier
in angle brackets. Both is distracting when printing simple values and can be
avoided by picking fmt.Sprintf for those types, plus trimming the result of
format.Object.

Before:

    allocator.go:483: I0625 15:35:31.946980] Allocating one device currentClaim=    <int>: 0 totalClaims=    <int>: 1 currentRequest=    <int>: 0 totalRequestsPerClaim=    <int>: 1 currentDevice=    <int>: 0 devicesPerRequest=    <int>: 1 allDevices=    <bool>: false adminAccess=    <bool>: false

After:

    allocator.go:483: I0625 15:35:04.371441] Allocating one device currentClaim=0 totalClaims=1 currentRequest=0 totalRequestsPerClaim=1 currentDevice=0 devicesPerRequest=1 allDevices=false adminAccess=false
Dropping the error that is returned by allocateOne hides the reason *why*
allocation failed. Including the UID is "too much information" for an error
message (usually the user doesn't care about the exact identity, just the name)
and the claim name can and will be added by the caller.

Before:

    controller.go:373: E0625 16:04:12.140953] test-driver.cdi.k8s.io/resource controller: processing failed err="claim test-dramq9jv-resource-h72pg: failed allocating claim 8551afba-3c9a-4a8a-8633-6fad6c4b9e42" key="schedulingCtx:test/test-dramq9jv"
    event.go:377: I0625 16:04:12.141031] test-driver.cdi.k8s.io/resource controller: Event(v1.ObjectReference{Kind:"PodSchedulingContext", Namespace:"test", Name:"test-dra65gfw", UID:"6be9ba57-31da-4fef-b61d-b0468d71afcf", APIVersion:"resource.k8s.io/v1alpha3", ResourceVersion:"197", FieldPath:""}): type: 'Warning' reason: 'Failed' claim test-dra65gfw-resource-zpzrj: failed allocating claim f98a32e1-ab7d-4b34-a258-6d8224aa9006

After:

    controller.go:373: E0625 16:02:54.248059] test-driver.cdi.k8s.io/resource controller: processing failed err="claim test-dram98ll-resource-nvsbj: device selectors are not supported" key="schedulingCtx:test/test-dram98ll"
    event.go:377: I0625 16:02:54.248163] test-driver.cdi.k8s.io/resource controller: Event(v1.ObjectReference{Kind:"PodSchedulingContext", Namespace:"test", Name:"test-dratpt77", UID:"24010402-b026-4fe4-a535-e1dab69db8c0", APIVersion:"resource.k8s.io/v1alpha3", ResourceVersion:"298", FieldPath:""}): type: 'Warning' reason: 'Failed' claim test-dratpt77-resource-vlgrv: device selectors are not supported
The logging was fairly complete about *not* doing something, but the actual
ResourceClaim creation was not logged.
…DIDevices-update-GA-milestone

features: update milestone for DevicePluginCDIDevices
…-enhance

enhanced the docker build documentation for readability and clarity
Tal-or and others added 19 commits June 28, 2024 16:27
Adding a new mutation plugin that handles the following:

1. In case of `workload.openshift.io/enable-shared-cpus` request, it
   adds an annotation to hint runtime about the request. runtime
   is not aware of extended resources, hence we need the annotation.
2. It validates the pod's QoS class and return an error if it's not a
   guaranteed QoS class
3. It validates that no more than a single resource is being request.
4. It validates that the pod deployed in a namespace that has mixedcpus
   workloads allowed annotation.

For more information see - openshift/enhancements#1396

Signed-off-by: Talor Itzhak <[email protected]>

UPSTREAM: <carry>: Update management webhook pod admission logic

Updating the logic for pod admission to allow a pod creation with workload partitioning annotations to be run in a namespace that has no workload allow annoations.

The pod will be stripped of its workload annotations and treated as if it were normal, a warning annoation will be placed to note the behavior on the pod.

Signed-off-by: ehila <[email protected]>

UPSTREAM: <carry>: add support for cpu limits into management workloads

Added support to allow workload partitioning to use the CPU limits for a container, to allow the runtime to make better decisions around workload cpu quotas we are passing down the cpu limit as part of the cpulimit value in the annotation. CRI-O will take that information and calculate the quota per node. This should support situations where workloads might have different cpu period overrides assigned.

Updated kubelet for static pods and the admission webhook for regular to support cpu limits.

Updated unit test to reflect changes.

Signed-off-by: ehila <[email protected]>
…ject openshift feature gates into pkg/features

Signed-off-by: Swarup Ghosh <[email protected]>
…olumn

The logic is not exressible via JSONPath. Hence, if we want this, we have to help a little with this custom column writer.

OpenShift-Rebase-Source: 633a422
- we tie the shutdown events with the UID of  the first
  (shutdown initiated), this provides us with a more
  deterministic way to compute shutdown duration from
  these events

- move code snippets from the upstream file to openshift
  specific patch file, it reduces chance of code conflict

Note for rebase: squash it into the following commit
cfbb6d6 UPSTREAM: <carry>: create termination events
PersistentVolumeLabel admission plugin is being disabled in OCP 4.16. Skip all tests that require it.
The node.status.addresses logic grew organically and with weird
semantics, this commit try to document existing semantics when
the kubelet uses an external cloud provider and recover the same
behavior existing pre-1.29.

The node.status.addresses can be populated by the kubelet at startup or
delegated to the external cloud provider.

If the --node-ip flag is set to an IP in the node, the kubelet will add
an annotation to the Node object that will be respected by the external
cloud providers, no new IP addresses will be added for the same address
type.

If the IP set in the --node-ip flag is `0.0.0.0` or `::`, the kubelet
will initialize the node with the default address of the corresponding
IP family of the unspecified address, and the cloud-provider will override
it later.
Remove PersistentVolumeLabel admission plugin from the default list of
enabled admissions.

The plugin is deprecated upstream and most of its functionality was removed
in 1.29 and 1.30.

This is continuation of openshift/cluster-kube-apiserver-operator#1693,
the admission is enabled on multiple places.
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jun 28, 2024
Copy link

openshift-ci bot commented Jun 28, 2024

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci-robot openshift-ci-robot added the backports/unvalidated-commits Indicates that not all commits come to merged upstream PRs. label Jun 28, 2024
@soltysh
Copy link
Author

soltysh commented Jun 28, 2024

/test unit
/test integration

@openshift-ci-robot
Copy link

@soltysh: the contents of this pull request could not be automatically validated.

The following commits could not be validated and must be approved by a top-level approver:

Comment /validate-backports to re-evaluate validity of the upstream PRs, for example when they are merged upstream.

@openshift-ci openshift-ci bot added the vendor-update Touching vendor dir or related files label Jun 28, 2024
Copy link

openshift-ci bot commented Jun 28, 2024

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: soltysh

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 28, 2024
Copy link

openshift-ci bot commented Jun 28, 2024

@soltysh: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/unit 68201ac link true /test unit

Full PR test history. Your PR dashboard.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@soltysh soltysh closed this Jul 1, 2024
@soltysh soltysh deleted the rebase-2024-06-28 branch July 15, 2024 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. backports/unvalidated-commits Indicates that not all commits come to merged upstream PRs. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. vendor-update Touching vendor dir or related files
Projects
None yet
Development

Successfully merging this pull request may close these issues.