jiebi/CodeConvo huggingface dataset:
Change:
var ( apiserverRejectedRequestsTotal = compbasemetrics.NewCounterVec( &compbasemetrics.CounterOpts{ <del> Namespace: namespace, Subsystem: subsystem, Name:      "rejected_requests_total", Help:      "Number of requests rejected by API Priority and Fairness system", </del> <ins> Namespace:      namespace, Subsystem:      subsystem, Name:           "rejected_requests_total", Help:           "Number of requests rejected by API Priority and Fairness system", StabilityLevel: compbasemetrics.ALPHA, </ins> }, []string{priorityLevel, flowSchema, "reason"}, ) apiserverDispatchedRequestsTotal = compbasemetrics.NewCounterVec( &compbasemetrics.CounterOpts{ <del> Namespace: namespace, Subsystem: subsystem, Name:      "dispatched_requests_total", Help:      "Number of requests released by API Priority and Fairness system for service", </del> <ins> Namespace:      namespace, Subsystem:      subsystem, Name:           "dispatched_requests_total", Help:           "Number of requests released by API Priority and Fairness system for service", StabilityLevel: compbasemetrics.ALPHA, </ins> }, []string{priorityLevel, flowSchema}, )

Discussion:
<!-- Please only use this template for submitting enhancement requests --What would you like to be : API priority and fairness metrics have labels such as "priorityLevel" and "flowSchema". These should be "prioritylevel" and "flowschema" respectively. These metrics have been to an exception list: Why is this needed: snake_case is consistent with other metrics. /sig api-machinery /kind cleanup /cc Do we want to do this before 1.20 beta?
yes, lets do that.
/triage accepted Yes, we do not want to go to beta with known wrongness in the metrics.
Change:
setupMetrics() namespace := "test" endpoints := corev1.Endpoints{ <del> ObjectMeta: metav1.ObjectMeta{Name: "test-ep", Namespace: namespace, Labels: tc.epLabels, Annotations: tc.epAnnotations}, </del> <ins> ObjectMeta: metav1.ObjectMeta{Name: "test-ep", Namespace: namespace, Labels: tc.epLabels, Annotations: tc.epAnnotations, UID: types.UID(tc.uid)}, </ins> Subsets:    tc.subsets, }

Discussion:
create a service without selector, and manual create endpoints for this service endpointslicemirroring controller will create an endpointslice for this service. after endpoint slice created, and kube-controller-manager restart. during the kube-controller-manager restart, the endpoint was deleted and recreated after kube-controller-manager restart, garbagecollector controller delete this endpointslice and endpointslice not recreate until endpoint/service update event or kube-controller-manager restart endpointslice will be recreated create a service without selector, and manual create endpoints for this service endpointslicemirroring controller will create an endpointslice for this service. after endpoint slice created, and kube-controller-manager restart. during the kube-controller-manager restart, the endpoint was deleted and recreated No response <details</details<details</details<details</details<details</details<details</details<details</details
/sig network
/assign
Trying to understand this, mostly just restating what you've said above to make sure I'm getting it: during the kube-controller-manager restart, the endpoint was deleted and recreated after kube-controller-manager restart, garbagecollector controller delete this endpointslice and endpointslice not recreate until endpoint/service update event or kube-controller-manager restart So an Endpoints resource is being deleted while kube-controller-manager is not running. The EndpointSlice mirroring controller to point to the Endpoints they're mirroring. When kube-controller-manager is restarted, the garbage collector will delete the mirrored EndpointSlice because it's owned by an Endpoints resource that was previously deleted. That deletion by garbage collection would then be , but if the EndpointSliceTracker doesn't think it should have that resource, it will ignore the deletion and not reconcile, resulting in the mirrored EndpointSlice not being recreated until something updates the Service or Endpoints resource.
/triage accepted
Change:
package spdy import ( <ins> "bufio" </ins> "fmt" <ins> "io" "net" </ins> "net/http" "strings" <ins> "sync/atomic" </ins> "k8s.io/apimachinery/pkg/util/httpstream" "k8s.io/apimachinery/pkg/util/runtime"

Discussion:
https://k8s- Failed: TestServeExec {streaming}
Should be fixed by

https://k8s- Failed: TestRoundTripAndNewConnection/redirect=false {spdy}
https://k8s- Failed: TestRoundTripAndNewConnection/redirect=false {spdy}
Should be fixed by
https://k8s- Failed: TestRoundTripAndNewConnection/redirect=false {spdy}

https://k8s- Failed: TestServeExecInContainer {server}
Should be fixed by
https://k8s- Failed: TestServeExecInContainer {server}

https://k8s- Failed: TestServeAttachContainer {server}
https://k8s- Failed: TestServeAttachContainer {server}
Should be fixed by

https://k8s- Failed: TestRoundTripAndNewConnection/redirect=true {spdy}
https://k8s- Failed: TestRoundTripAndNewConnection/redirect=true {spdy}
https://k8s- Failed: TestRoundTripAndNewConnection/redirect=true {spdy}
Should be fixed by
https://k8s- Failed: TestRoundTripAndNewConnection/redirect=true {spdy}
https://k8s- Failed: TestRoundTripAndNewConnection/redirect=true {spdy}

seen in https://k8s-
Should be fixed by
I believe this is fixed?
Yes, I missed this one.
Change:
if err != nil { return err } <del> printService(out, "Kubernetes master", client.Host, false) </del> <ins> printService(out, "Kubernetes master", client.Host) </ins> mapper, typer := factory.Object() cmdNamespace, err := factory.DefaultNamespace()

Discussion:
Right now at the end of I get We should update the output to point to the appropriate v1beta3 URL endpoints instead.
/cc
Ref and . cc
And as a minor nit, not all of those URLs need a trailing slash hack e.g. I don't think it is required for Elasticsearch. I think most recently worked on this code?
Thanks for fixing this
Change:
// make the lock here as small as possible diskOpMutex.LockKey(instanceid) <ins> c.diskAttachDetachMap.Store(strings.ToLower(diskURI), "detaching") </ins> resp, err := vmset.DetachDisk(diskName, diskURI, nodeName) <ins> c.diskAttachDetachMap.Delete(strings.ToLower(diskURI)) </ins> diskOpMutex.UnlockKey(instanceid) if c.cloud.CloudProviderBackoff && shouldRetryHTTPRequest(resp, err) { klog.V(2).Infof("azureDisk - update backing off: detach disk(%s, %s), err: %v", diskName, diskURI, err) retryErr := kwait.ExponentialBackoff(c.cloud.RequestBackoff(), func() (bool, error) { diskOpMutex.LockKey(instanceid) <ins> c.diskAttachDetachMap.Store(strings.ToLower(diskURI), "detaching") </ins> resp, err := vmset.DetachDisk(diskName, diskURI, nodeName) <ins> c.diskAttachDetachMap.Delete(strings.ToLower(diskURI)) </ins> diskOpMutex.UnlockKey(instanceid) return c.cloud.processHTTPRetryResponse(nil, "", resp, err) })

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --What happened: We found that cloud provider tries to attach a disk, it totally costs 121s in the end one minute(disk still in being detaching state), azure cloud provider tries to delete that disk and it succeeded 121s, attach disk operation succeeded and finally azure vm has attached one non-existing disk What you expected to happen: should not delete an azure disk when that disk is being attached How to reproduce it (as minimally and precisely as possible): Anything else we need to know?: The difficulty here is when a disk is being attached or detached, the disk state is still "unattached", would be the reason why delete disk at that time would succeed: Azure disk RP would have two options to fix this issue: a new disk state: , disk delete operation when disk is being attached or detached Otherwise on azure provider(client) side, we cannot know whether that disk is being attached or detached since the second delete disk operation is done after 1 min Environment: Kubernetes version (use ): Cloud provider or hardware configuration: OS (e.g: ): Kernel (e.g. ): Install tools: Network plugin and version (if this is a network-related bug): Others: /kind bug /assign /priority important-soon /sig cloud-provider /area provider/azure
Change:
type process struct{ name, file string } dockerProcs := []process{{dockerProcessName, dockerPidFile}} if dockerAPIVersion.AtLeast(containerdAPIVersion) { <ins> // By default containerd is started separately, so there is no pid file. containerdPidFile := "" </ins> dockerProcs = append(dockerProcs, process{containerdProcessName, containerdPidFile}) } var errs []error

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --What happened: docker-containerd have renamed to containerd, but EnsureDockerInContainer check not update,so it not work What you expected to happen: Is this check still needed How to reproduce it (as minimally and precisely as possible): no need Anything else we need to know?: Environment: Kubernetes version (use ): Cloud provider or hardware configuration: OS (e.g: ): Kernel (e.g. ): Install tools: Network plugin and version (if this is a network-related bug): Others:
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the label and provide further guidance. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/sig node
cc
feel free to send an PR update with new name for the process and the location of the pid file.
Change:
}, "ownerReferences": []map[string]interface{}{ { <del> "kind":               "Pod", "name":               "poda", "apiVersion":         "v1", "uid":                "1", "controller":         (*bool)(nil), "blockOwnerDeletion": (*bool)(nil), </del> <ins> "kind":       "Pod", "name":       "poda", "apiVersion": "v1", "uid":        "1", </ins> }, { "kind":               "Pod", "name":               "podb", "apiVersion":         "v1", "uid":                "2", <del> "controller":         &trueVar, "blockOwnerDeletion": &trueVar, </del> <ins> "controller":         true, "blockOwnerDeletion": true, </ins> }, }, "finalizers": []interface{}{

Discussion:
Kubernetes version Code from master. What happened: does not return and fields after they are set to non-nil values using . How to reproduce it (as minimally and precisely as possible): See PR
/sig api-machinery
This is a good find and I don't think I saw the notification come through :(
Change:
DoRaw() } <del> for i := 0; !passed; i++ { // Timeout will keep us from going forever. </del> <ins> timeout := time.Now().Add(2 * time.Minute) for i := 0; !passed && timeout.After(time.Now()); i++ { </ins> time.Sleep(2 * time.Second) Logf("About to make a proxy status call") start := time.Now()

Discussion:
test panicked: (root)/Kubernetes%%20suite/Monitoringverifymonitoringpodsandallclusternodesareavailableoninfluxdbusingheapster/ cc
Vish please take a look if you have cycles or reassign if there's someone with better context.
I looked at the panic and it was due to the last test (networking) timing out but still running. I think the fix is more in better cleanup between tests.
I just saw this... it's totally due to ginkgo's cleanup when a test times out. I can fix.
I will get this one.
Ugh, the thing ginkgo does when a test times out is totally lame...
Instead of working around this, I've filed I'm going to go back to a manual timeout on this test.
Change:
Priority                          *int32 PreemptionPolicy                  *v1.PreemptionPolicy PriorityClassName                 string <ins> Volumes                           []v1.Volume </ins> } // InitPausePod initializes a pod API object from the given config. It is used

Discussion:
We need an integration test for the scheduler enforcement of the alpha feature. This is required for beta graduation; we need to collect signal on the current behavior before we can proceed. See this comment for context:
/sig storage /sig scheduler
This issue is currently awaiting triage. If a SIG or subproject determines this is a relevant issue, they will accept it by applying the label and provide further guidance. The label can be by org members by writing in a comment. <detailsInstructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
The label(s) cannot be applied, because the repository doesn't have them. <detailsIn response to : /sig storage /sig scheduler Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/sig scheduling
Change:
"cgroup_manager_test.go", "container_manager_linux_test.go", "helpers_linux_test.go", <del> "node_container_manager_test.go", </del> <ins> "node_container_manager_linux_test.go", </ins> "pod_container_manager_linux_test.go", ], embed = [":go_default_library"],

Discussion:
Is this a BUG REPORT or FEATURE REQUEST?: /kind bug What happened: After running some tests, we're seeing that the combined usage of kubelet + docker can be around 2Gi. We need to be able to account for this in scheduling to avoid crashing these services. The first step towards this is using kube-reserved and system-reserved to avoid oversubscribing the virtual memory space available on the Windows nodes with too many containers. What you expected to happen: It should reduce node allocatable memory by kube-reserved + system-reserved. How to reproduce it (as minimally and precisely as possible): This logs an error in the kubelet log such as: code: Anything else we need to know?: /milestone v1.13 /assign feiskyer /sig windows This blocks a PR where I want to set it by default to 2Gi Environment: Kubernetes version (use ): v1.11.3 (also v1.12) Cloud provider or hardware configuration: Azure OS (e.g. from /etc/os-release): Windows Server version 1803 Install tools: acs-engine
You must be a member of the github team to set the milestone. <detailsIn response to : Is this a BUG REPORT or FEATURE REQUEST?: What happened: What you expected to happen: This logs an error in the kubelet log such as: code: /milestone v1.13 /assign feiskyer Kubernetes version (use ): v1.11.3 (also v1.12) Cloud provider or hardware configuration: Azure OS (e.g. from /etc/os-release): Windows Server version 1803 Install tools: acs-engine Instructions for interacting with me using PR comments are available . If you have questions or suggestions related to my behavior, please file an issue against the repository. </details
/milestone v1.13
/priority important-soon
Change:
"strings" "testing" <ins> "github.com/spf13/cobra" </ins> "k8s.io/cli-runtime/pkg/genericclioptions" cmdutil "k8s.io/kubectl/pkg/cmd/util" )

Discussion:
What happened: I am using a command like below in GitHub actions: I get the following error: What you expected to happen: Since I am using flag, it should work without requiring a valid kubeconfig file. How to reproduce it (as minimally and precisely as possible): Just delete your local kubeconfig file and try the above command. Anything else we need to know?: Environment: Kubernetes version (use ): Cloud provider or hardware configuration: OS (e.g: ): Kernel (e.g. ): Install tools: Network plugin and version (if this is a network-related bug): Others:
/sig cli
/assign /kind regression
This likely breaks some scripted usage of kubectl
This is related to /assign
Or
Yes, sorry I mentioned you in this issue. Because my first thought is this brings and which will check the config file existence but in fact that's not the root cause. Actually the root cause This checks config has the server or not. And with this , this function will return error when there's no local config file. I think there might be two solutions? the similar logic like to every , , ..... when or is set. Seems not a good idea. reverse this to have the default server which is better than ? By the way, is equals ? Since This works only for .
The plan I agreed on with Jordan is that I will revert since that seems to be the main culprit behind all these problems. I'll add a test ensuring this works as required. This will allow us to backport the fix to 1.18. For 1.19 I'll put together a proper fix supporting and flags.
Change:
kind := schema.GroupKind{Group: "extensions", Kind: "DaemonSet"} framework.WaitForControlledPodsRunning(config.client, config.ns, daemonSetName, kind) <del> By("Creating a directory under discovery path") framework.Logf("creating local volume under path %q", volumePath) mkdirCmd := fmt.Sprintf("mkdir %v -m 777", volumePath) err := framework.IssueSSHCommand(mkdirCmd, framework.TestContext.Provider, config.node0) Expect(err).NotTo(HaveOccurred()) </del> By("Waiting for a PersitentVolume to be created") oldPV, err := waitForLocalPersistentVolume(config.client, volumePath) Expect(err).NotTo(HaveOccurred())

Discussion:
The local PV provisioner is being updated to discover only real mount points (and not directories), that resolves some other related issues. The related e2e tests using the local PV provisioner need to be updated accordingly.
/assign
/sig storage
FYI:
Change:
titleDown := "%s should scale from 5 pods to 3 pods and from 3 to 1 (via %s, with scale resource: CPU)" // CPU tests via deployments <del> It(fmt.Sprintf(titleUp, "[Skipped]", kindDeployment), func() { </del> <ins> It(fmt.Sprintf(titleUp, "[Autoscaling Suite]", kindDeployment), func() { </ins> scaleUp("deployment", kindDeployment, rc, f) }) <del> It(fmt.Sprintf(titleDown, "[Skipped]", kindDeployment), func() { </del> <ins> It(fmt.Sprintf(titleDown, "[Autoscaling Suite]", kindDeployment), func() { </ins> scaleDown("deployment", kindDeployment, rc, f) })

Discussion:
We need to write e2e tests which combines horizontal pod autoscaling with deployments (scale sub-resourcer should point to a deployment object). The tests should be similar to The library from should be extended and allow creation of a resource consumer as a deployment (currently it is always replication controller). The new tests should create a deployment resource consumer and pass a scale-sub-resource to the deployment to autoscaler.
part of
/cc
/cc FYI requests have been made to verify behavior at scale on *this.
Yeah that sounds like a good test to run re: scale out to n node cc also
Change:
`cbr-cidr` | (Optional) The minion IP address range used for the docker container bridge. `cloud` | (Optional) Which IaaS platform is used to host kubernetes, *gce*, *azure*, *aws*, *vagrant* `etcd_servers` | (Optional) Comma-delimited list of IP addresses the kube-apiserver and kubelet use to reach etcd.  Uses the IP of the first machine in the kubernetes_master role, or 127.0.0.1 on GCE. <del> `hostnamef` | (Optional) The full host name of the machine, i.e. hostname -f (only used on Azure) </del> <ins> `hostnamef` | (Optional) The full host name of the machine, i.e. uname -n </ins> `node_ip` | (Optional) The IP address to use to address this node `minion_ip` | (Optional) Mapped to the kubelet hostname_override, K8S TODO - change this name `network_mode` | (Optional) Networking model to use among nodes: *openvswitch*

Discussion:
Actually appending fqdn suffix already causes issue for non-resolvable node names based on today: Today when NodeController "registers" nodes in SyncCloud by getting bare instance names () from GCE, and recreating the fqdn and append it to instance names().
Change:
defer utilruntime.HandleCrash() defer cc.queue.ShutDown() <del> klog.Infof("Starting certificate controller") defer klog.Infof("Shutting down certificate controller") </del> <ins> klog.Infof("Starting certificate controller %q", cc.name) defer klog.Infof("Shutting down certificate controller %q", cc.name) </ins> <del> if !cache.WaitForNamedCacheSync("certificate", stopCh, cc.csrsSynced) { </del> <ins> if !cache.WaitForNamedCacheSync(fmt.Sprintf("certificate-%s", cc.name), stopCh, cc.csrsSynced) { </ins> return }

Discussion:
There are multiple cert controllers that use the same base struct, so when they log, you cannot differentiate which is which.
/sig auth
Change:
<ins> #!/usr/bin/env bash # Copyright 2023 The Kubernetes Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # #     http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This script checks whether the testing.init symbol is present in any # of the release binaries and fails if it finds one. This check is needed # to avoid including test libraries in production binaries as they often lack # rigorous review and sufficient testing. # Usage: `hack/verify-test-code.sh`. set -o errexit set -o nounset set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" cd "${KUBE_ROOT}" RELEASE_BIN_PKGS=( "${KUBE_ROOT}/cmd/cloud-controller-manager" "${KUBE_ROOT}/cmd/kube-apiserver" "${KUBE_ROOT}/cmd/kube-controller-manager" "${KUBE_ROOT}/cmd/kube-proxy" "${KUBE_ROOT}/cmd/kube-scheduler" "${KUBE_ROOT}/cmd/kubectl" "${KUBE_ROOT}/cmd/kubectl-convert" "${KUBE_ROOT}/cmd/kubelet" ) pkgs_with_testing_import=() for file in "${RELEASE_BIN_PKGS[@]}" do if [ "$(go list -json "${file}" | jq 'any(.Deps[]; . == "testing")')" == "true" ] then pkgs_with_testing_import+=( "${file}" ) fi done if [ ${#pkgs_with_testing_import[@]} -ne 0 ]; then printf "%sn" "Testing package imported in:" for file in "${pkgs_with_testing_import[@]}"; do printf "t%sn" "${file}" done exit 1 fi exit 0 </ins>

Discussion:
We have many "test only" packages through out the project, containing fixtures, helpers, utilities, etc... These test libraries are not intended for use in production binaries. They often lack rigorous review and sufficient testing for use in production binaries. We should make sure they don't accidentally get pulled in. Strawman proposal, test only packages must import "testing". Blank import is sufficient: Then write a presubmit that fails if we find symbol in the release binary. This approach is trivial and fairly effective although a more sophisticated approach could print a dep chain.
/assign
I hope I will be able to contribute once this gets marked as .
/triage accepted
I think that will be enough a new script or a check in the building scripts /cc since he has experience from the providerless building effort
I got what we want to achieve here but I'm little confused about: If I execute: after adding the import then only it is giving - what do we want to achieve by executing this command exactly? I got what it is doing. I've opened a thread in slack as well:
Hello! Is there anyone working on this issue at the moment? If not and the issue it's still relevant, I would like to work on it if possible. Thank you.
I opened a PR in the meantime, if it's not needed anymore, I can close it.