jiebi/CodeConvo huggingface dataset:
Change:
// owner: @j-griffith // alpha: v1.15 // beta: v1.16 <ins> // GA: v1.18 </ins> // // Enable support for specifying an existing PVC as a DataSource VolumePVCDataSource featuregate.Feature = "VolumePVCDataSource"

Discussion:
/kind feature /sig storage /sig api PVC Data Sources have been in beta since 1.16 and should be ready to be promoted to GA in the 1.18 release. KEP:
The label(s) cannot be applied, because the repository doesn't have them <detailsIn response to : /kind feature /sig storage /sig api 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
Change:
cinderVolumePluginName = "kubernetes.io/cinder" ) <ins> func getPath(uid types.UID, volName string, host volume.VolumeHost) string { return host.GetPodVolumeDir(uid, kstrings.EscapeQualifiedNameForDisk(cinderVolumePluginName), volName) } </ins> func (plugin *cinderPlugin) Init(host volume.VolumeHost) error { plugin.host = host plugin.volumeLocks = keymutex.NewKeyMutex()

Discussion:
Is this a BUG REPORT or FEATURE REQUEST?: BUG /kind bug What happened: I am trying to get metrics working. According this there should be support after 1.8 kube. However, I am now using kube 1.10.1 and still I cannot see anything in ? Should these be there or not? What you expected to happen: I except that kubelet should expose prometheus metrics to /metrics path as well. Then it is easy to read with prometheus. How to reproduce it (as minimally and precisely as possible): Create new cinder volume, attach it to pod and try to query result from in kubelet Environment: Kubernetes version (use ): 1.10.1 Cloud provider or hardware configuration: openstack OS (e.g. from /etc/os-release): centos 7 Kernel (e.g. ): Install tools: Others:
cc
/sig storage
Prometheus metrics should be available on default port of Kubelet. Can you try ? If you are on a RBAC enabled cluster (such as openshift) you may have to use token or key to authenticate for fetching metrics.
returns many metrics but there is not things. There is one pod which have cinder volume attached running in that node. So there should be some metrics right?
It appears that Cinder volume plugin does not implement metric interface necessary for getting those stat metrics - This seems like an oversight and is fairly easy to fix. I can help getting the PR merged if you can open it.
/sig openstack
Kubernetes v1.19.16 there is no kubelet_volume* metrics in //metrics how to fix it???
Change:
By("verify NodeStatus report period is longer than lease duration") // NodeStatus is reported from node to master when there is some change or // enough time has passed. So for here, keep checking the time diff <del> // between 2 NodeStatus report, until it is longer than lease duration ( // the same as nodeMonitorGracePeriod). heartbeatTime := getNextReadyConditionHeartbeatTime(f.ClientSet, nodeName, metav1.Time{}) </del> <ins> // between 2 NodeStatus report, until it is longer than lease duration // (the same as nodeMonitorGracePeriod), or it doesn't change for at least leaseDuration lastHeartbeatTime := getReadyConditionHeartbeatTime(f.ClientSet, nodeName) lastObserved := time.Now() </ins> Eventually(func() error { <del> nextHeartbeatTime := getNextReadyConditionHeartbeatTime(f.ClientSet, nodeName, heartbeatTime) if nextHeartbeatTime.Time.After(heartbeatTime.Time.Add(leaseDuration)) { return nil </del> <ins> currentHeartbeatTime := getReadyConditionHeartbeatTime(f.ClientSet, nodeName) currentObserved := time.Now() switch { case currentHeartbeatTime == lastHeartbeatTime: if currentObserved.Sub(lastObserved) > 2*leaseDuration { // heartbeat hasn't changed while watching for at least 2*leaseDuration, success! framework.Logf("node status heartbeat is unchanged for %s, was waiting for at least %s, success!", currentObserved.Sub(lastObserved), 2*leaseDuration) return nil } framework.Logf("node status heartbeat is unchanged for %s, waiting for %s", currentObserved.Sub(lastObserved), 2*leaseDuration) return fmt.Errorf("node status heartbeat is unchanged for %s, waiting for %s", currentObserved.Sub(lastObserved), 2*leaseDuration) case currentHeartbeatTime != lastHeartbeatTime: if currentHeartbeatTime.Sub(lastHeartbeatTime) > leaseDuration { // heartbeat time changed, but the diff was greater than leaseDuration, success! framework.Logf("node status heartbeat changed in %s, was waiting for at least %s, success!", currentHeartbeatTime.Sub(lastHeartbeatTime), leaseDuration) return nil } lastHeartbeatTime = currentHeartbeatTime lastObserved = currentObserved framework.Logf("node status heartbeat changed in %s, waiting for %s", currentHeartbeatTime.Sub(lastHeartbeatTime), leaseDuration) return fmt.Errorf("node status heartbeat changed in %s, waiting for %s", currentHeartbeatTime.Sub(lastHeartbeatTime), leaseDuration) </ins> } <del> heartbeatTime = nextHeartbeatTime return fmt.Errorf("node status report period is shorter than lease duration") // Enter next round immediately. }, 5*time.Minute, time.Nanosecond).Should(BeNil()) </del> <ins> return nil }, 5*time.Minute, time.Second).Should(BeNil()) </ins> By("verify node is still in ready status even though node status report is infrequent") // This check on node status is only meaningful when this e2e test is

Discussion:
/assign /milestone v1.14
(Edit: Removed comment to ask for help, noticed open PR later... For context/help to measure change post merge: This is currently failing about 8% of the time in )
<img width="1095" alt="Screen Shot 2019-03-16 at 11 47 05 AM" src="https://user-"Think this is done
Change:
*out = make([]string, len(*in)) copy(*out, *in) } <del> out.Debugging = in.Debugging </del> <ins> in.Debugging.DeepCopyInto(&out.Debugging) </ins> return }

Discussion:
What would you like to be : Change the external DebuggingConfiguration member variables to pointer types. Why is this needed: So that we can set their default values to something different from golang's, for example enable profiling by default. /sig api-machinery /cc
The label(s) cannot be applied. These labels are supported: <detailsIn response to : What would you like to be : Change the external DebuggingConfiguration member variables to pointer types. Why is this needed: So that we can set their default values to something different from golang's, for example enable profiling by default. /cc 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
done in
Change:
// Note that we pass all pods (including terminated pods) to the function, // so that we don't remove directories associated with terminated but not yet // deleted pods. <del> err = kl.cleanupOrphanedPodDirs(allPods) </del> <ins> err = kl.cleanupOrphanedPodDirs(allPods, runningPods) </ins> if err != nil { glog.Errorf("Failed cleaning up orphaned pod directories: %v", err) return err

Discussion:
Often observed in logs: However: Which probably means we'd be ok unmounting it: This probably also means we don't delete orphaned mirror pods, which is the next step in SyncPods ().
Change:
if err != nil { return err } <del> if pods, err = spc.addTerminatedPod(set, ordinal); err != nil { </del> <ins> if pods, err = spc.addTerminatingPod(set, ordinal); err != nil { </ins> return err } if err = ssc.UpdateStatefulSet(set, pods); err != nil {

Discussion:
/assign flakes in PR jobs more than once per day The can filter down to searching for results for a single test:
This test continues to flake PRs at least once per day:
https://k8s-
looking at it
Change:
return oldRc, nil } // Block until there are any pods ready. <del> oldAvailable, newAvailable, err := r.waitForReadyPods(config.Interval, config.Timeout, oldRc, newRc) </del> <ins> _, newAvailable, err := r.waitForReadyPods(config.Interval, config.Timeout, oldRc, newRc) </ins> if err != nil { return nil, err } // The old controller is considered as part of the total because we want to // maintain minimum availability even with a volatile old controller. <del> // Scale down as much as possible while maintaining minimum availability. decrement := (oldAvailable + newAvailable) - minAvailable </del> <ins> // Scale down as much as possible while maintaining minimum availability decrement := oldRc.Spec.Replicas + newAvailable - minAvailable </ins> // The decrement normally shouldn't drop below 0 because the available count // always starts below the old replica count, but the old replica count can // decrement due to externalities like pods death in the replica set. This

Discussion:
I intentionally cause the rolling update to fail by specifying a non-existent image in the spec, so that it times out. rollback then fails with a timeout as well, despite the original replication controller having 1 healthy replica: This is on 1.1.2. I expect the rollback to succeed as the original rc (copper) has 1 healthy replica still.
With 2 replicas the rollback seems to work as expected.
I found the bug inside of the function of . It erroneously assumes reducing replicas on scale down will always drop the minimum available, when this isn't the case if you are rolling back from a failed deployment (where the scale down will be on the NotReady/failed pods). It needs to consider not ready replicas as well in each RC when deciding if it can scale down. This test case illustrates the problem:
Change:
ctx, cancel := context.WithCancel(context.Background()) factory.Start(ctx.Done()) <ins> factory.WaitForCacheSync(ctx.Done()) </ins> env.mux = http.NewServeMux() h := handler.NewOpenAPIService(&spec.Swagger{})

Discussion:
Has been flaking on both and architectures. https://prow.ppc64le- TestTwoCRDsSameGroup /sig testing
/sig api-machinery /remove-sig testing
/cc /triage accepted
any ideas on this one?
I'm able to repro this with stress, happening about every 100-500 runs. Still trying to find the root cause.
Change:
rerr := as.VirtualMachinesClient.Update(ctx, nodeResourceGroup, vmName, newVM, "detach_disk") if rerr != nil { <del> return rerr.Error() </del> <ins> klog.Errorf("azureDisk - detach disk(%s, %s) on rg(%s) vm(%s) failed, err: %v", diskName, diskURI, nodeResourceGroup, vmName, rerr) if rerr.HTTPStatusCode == http.StatusNotFound { klog.Errorf("azureDisk - begin to filterNonExistingDisks(%s, %s) on rg(%s) vm(%s)", diskName, diskURI, nodeResourceGroup, vmName) disks := as.filterNonExistingDisks(ctx, *vm.StorageProfile.DataDisks) newVM.VirtualMachineProperties.StorageProfile.DataDisks = &disks if rerr = as.VirtualMachinesClient.Update(ctx, nodeResourceGroup, vmName, newVM, "detach_disk"); rerr != nil { return rerr.Error() } } </ins> } <ins> klog.V(2).Infof("azureDisk - update(%s): vm(%s) - detach disk(%s, %s) succeeded", nodeResourceGroup, vmName, diskName, diskURI) </ins> return nil }

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: check disk status before disk azure disk There is little possibility that attach disk would cost 10min, and disk could be attached, deleted in same time, that would cause race condition. What you expected to happen: How to reproduce it (as minimally and precisely as possible): 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: /kind bug /assign /priority important-soon /sig cloud-provider /area provider/azure
Change:
if err := p.SyncPVCs(pet); err != nil { return err } <del> if exists { </del> <ins> // if pet failed - we need to remove old one because of consistent naming if exists && realPet.pod.Status.Phase == api.PodFailed { glog.V(4).Infof("Delete evicted pod %v", realPet.pod.Name) if err := p.petClient.Delete(realPet); err != nil { return err } } else if exists { </ins> if !p.isHealthy(realPet.pod) { glog.Infof("PetSet %v waiting on unhealthy pet %v", pet.parent.Name, realPet.pod.Name) }

Discussion:
Description of problem Create a petset, when pod is evicted, the petset can't create a new pod on other node and make sure pod is running. Kubernetes version (use ): v1.4.0-alpha.2.1427+ How to reproduce it (as minimally and precisely as possible): kubele eviction-hard="memory.available<${value}" a peset and wait all pod is running node MemoryPressure=true all pod status What happened: is evicted and petset can't create new pod and make sure pod is running. What you expected to happen: create new pod on other node and make sure pod is running.
Also when node come back with sufficient memory, petset can't make pod running again.
FYI
cc
Was able to reproduce it. Pet set controller just loops with the following logs I0830 12:32:52. 9 ] Syncing PetSet default/cockroachdb with 3 pets I0830 12:32:52. 9 ] PetSet cockroachdb blocked from scaling on pet cockroachdb-0 I0830 12:32:52. 9 ] PetSet cockroachdb waiting on unhealthy pet cockroachdb-0 I0830 12:32:52. 9 ] PetSet cockroachdb waiting on unhealthy pet cockroachdb-1 I0830 12:32:52. 9 ] PetSet cockroachdb waiting on unhealthy pet cockroachdb-2
-- do you have the petset YAML that we can evaluate? What is the quality of service tier for the pods produced by the petset? Can you include the of an evicted petset pod so we can see the final resource requirements spec?
I am able to reproduce it with nginx pet set in e2e test. Here is yaml output of it Also it seems that i have working fix and almost finished debugging e2e test (patchset is linked above). Will be grateful for review.
Ah, this helps clear things up... the linked pr shows the problem in petset controller and not kubelet...
Does it make sense to set milestone 1.4 for this issue? I think the fix is ready for review
Change:
{% endif %} {% if grains['cloud'] is defined and grains['cloud'] == 'vagrant' %} - docker <ins> - kubelet </ins> - sdn {% endif %} {% if grains['cloud'] is defined and grains['cloud'] == 'aws' %}

Discussion:
Self-assigning as I work out a reliable fix.
cc
Running into a few issues. On GCE, did you guys block somewhere to wait for etcd to be running before reporting success on kube-up?
No, except there is a race between addson services, dns and etcd container. We introduced a retry logic on those services.
I assume pulling the image is just so fast that you don't run into e2e errors, it looks like you guys block on wait-for-minions that uses glcloud, so I guess when minions are reported in etcd, then you know you are good...
Change:
for set.Status.Replicas > *set.Spec.Replicas { pods, err = spc.podsLister.Pods(set.Namespace).List(selector) ord := len(pods) <del> pods, err = spc.addTerminatedPod(set, ord) </del> <ins> pods, err = spc.addTerminatingPod(set, ord) </ins> pod = getPodAtOrdinal(pods, ord) ssc.updatePod(&prev, pod) fakeWorker(ssc)

Discussion:
/assign flakes in PR jobs more than once per day The can filter down to searching for results for a single test:
This test continues to flake PRs at least once per day:
https://k8s-
looking at it
Change:
}, { "ImportPath": "github.com/spf13/cobra", <del> "Comment": "v0.0.1-32-g6644d46", "Rev": "6644d46b81fa1831979c4cded0106e774e0ef0ab" </del> <ins> "Comment": "v0.0.1-34-gc439c4f", "Rev": "c439c4fa093711d42e1b01acb1235b52004753c1" </ins> }, { "ImportPath": "github.com/spf13/cobra/doc", <del> "Comment": "v0.0.1-32-g6644d46", "Rev": "6644d46b81fa1831979c4cded0106e774e0ef0ab" </del> <ins> "Comment": "v0.0.1-34-gc439c4f", "Rev": "c439c4fa093711d42e1b01acb1235b52004753c1" </ins> }, { "ImportPath": "github.com/spf13/jwalterweatherman",

Discussion:
BUG REPORT: /kind bug What happened: Arguments to a command inside pod are treated as kubectl flags and deprecation warnings are shown for them from . What you expected to happen: Arguments to a command inside pod should not be treated as kubectl flags by . How to reproduce it: The arguments , , , passed to the command inside the pod above are treated as flags and deprecation warnings are shown for them from . Environment: Kubernetes version: 9: Cloud provider or hardware configuration: Ubuntu Xenial VM. OS:Kernel:Install tools: minikube:
/sig cli
Reiterating the mentions to trigger a notification: <detailsIn response to : /sig cli 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
is it ok if we remove this warning ?
the warning should be removed just for the arguments to a command inside pod that are passed after the , and not for the arguments to itself. The warning is still valid and needed for arguments with underscore () to itself.
This is a bug of cobra. I've sent out a PR to fix it. And bumped to the fixed version in .
Thanks for fixing this!
Change:
// If we don't do this, there is a case where we remove the Static Pod manifest, kubelet is slow to react, kubeadm checks the // API endpoint below of the OLD Static Pod component and proceeds quickly enough, which might lead to unexpected results. if err := waiter.WaitForStaticPodControlPlaneHashChange(cfg.NodeName, component, beforePodHash); err != nil { <del> return rollbackOldManifests(recoverManifests, err, pathMgr) </del> <ins> return rollbackOldManifests(recoverManifests, err, pathMgr, recoverEtcd) </ins> } // Wait for the static pod component to come up and register itself as a mirror pod if err := waiter.WaitForPodsWithLabel("component=" + component); err != nil { <del> return rollbackOldManifests(recoverManifests, err, pathMgr) </del> <ins> return rollbackOldManifests(recoverManifests, err, pathMgr, recoverEtcd) </ins> } fmt.Printf("[upgrade/staticpods] Component %q upgraded successfully!n", component)

Discussion:
kubeadm etcd upgrade modifying recovery steps /assign /sig cluster-lifecycle /kind bug
Change:
framework.Failf("deploying %s driver: %v", h.driverInfo.Name, err) } <del> // Cleanup CSI driver and namespaces. This function needs to be idempotent and can be // concurrently called from defer (or AfterEach) and AfterSuite action hooks. cleanupFunc := func() { ginkgo.By(fmt.Sprintf("deleting the test namespace: %s", ns1)) // Delete the primary namespace but its okay to fail here because this namespace will // also be deleted by framework.Aftereach hook tryFunc(func() { f.DeleteNamespace(ns1) }) ginkgo.By("uninstalling csi mock driver") tryFunc(cleanup) tryFunc(cancelLogging) ginkgo.By(fmt.Sprintf("deleting the driver namespace: %s", ns2)) tryFunc(func() { f.DeleteNamespace(ns2) }) // cleanup function has already ran and hence we don't need to run it again. // We do this as very last action because in-case defer(or AfterEach) races // with AfterSuite and test routine gets killed then this block still // runs in AfterSuite framework.RemoveCleanupAction(h.cleanupHandle) } h.cleanupHandle = framework.AddCleanupAction(cleanupFunc) </del> <ins> cleanupFunc := generateDriverCleanupFunc( f, h.driverInfo.Name, testns, driverns, cleanup, cancelLogging) </ins> return config, cleanupFunc }

Discussion:
Tracking bug for /sig storage /important-longterm /assign
/sig storage /triage accepted
/priority important-longterm
Change:
} // TODO(freehan): allow user to update loadbalancerSourceRanges <del> allErrs = append(allErrs, ValidateImmutableField(service.Spec.LoadBalancerSourceRanges, oldService.Spec.LoadBalancerSourceRanges, field.NewPath("spec", "loadBalancerSourceRanges"))...) </del> <ins> // Only allow removing LoadBalancerSourceRanges when change service type from LoadBalancer // to non-LoadBalancer or adding LoadBalancerSourceRanges when change service type from // non-LoadBalancer to LoadBalancer. if service.Spec.Type != api.ServiceTypeLoadBalancer && oldService.Spec.Type != api.ServiceTypeLoadBalancer || service.Spec.Type == api.ServiceTypeLoadBalancer && oldService.Spec.Type == api.ServiceTypeLoadBalancer { allErrs = append(allErrs, ValidateImmutableField(service.Spec.LoadBalancerSourceRanges, oldService.Spec.LoadBalancerSourceRanges, field.NewPath("spec", "loadBalancerSourceRanges"))...) } </ins> allErrs = append(allErrs, validateServiceFields(service)...) allErrs = append(allErrs, validateServiceAnnotations(service, oldService)...)

Discussion:
From . During the firewall e2e test we need to change the service type from to to avoid leaking LB resources. But found it is not working because the field. Error I got as below: If don't delete this field, got instead another error:
Just saw the TODO comment . Working on it.
Change:
and deletecollection. CronJob/status MUST support get, update and patch.' release: v1.21 file: test/e2e/apps/cronjob.go <ins> - testname: DaemonSet, list and delete a collection of DaemonSets codename: '[sig-apps] Daemon set [Serial] should list and delete a collection of DaemonSets [Conformance]' description: When a DaemonSet is created it MUST succeed. It MUST succeed when listing DaemonSets via a label selector. It MUST succeed when deleting the DaemonSet via deleteCollection. release: v1.22 file: test/e2e/apps/daemon_set.go </ins> - testname: DaemonSet-FailedPodCreation codename: '[sig-apps] Daemon set [Serial] should retry creating failed daemon pods [Conformance]'

Discussion:
[x] test approval issue : [X] test pr : [x] two weeks soak end date : 7 June 2021 [x] test promotion pr : kubernetes/kubernetes According to this APIsnoop query, there are still some remaining ReplicaSet endpoints which are untested. Create a Daemonset List all DaemonSets DeleteCollection of DaemonSetss Varify the DaemonSets have been deleted Using an existing conformance test as a template for a which validates that two new endpoints are hit. example endpoint | useragent -------------------------------------------|
createAppsV1NamespacedDaemonSet | (linux/amd64) kubernetes/$Format -- [sig-apps] Daemon set [Serial] should list and delete a collection of DaemonSets deleteAppsV1CollectionNamespacedDaemonSet | (linux/amd64) kubernetes/$Format -- [sig-apps] Daemon set [Serial] should list and delete a collection of DaemonSets listAppsV1DaemonSetForAllNamespaces | (linux/amd64) kubernetes/$Format -- [sig-apps] Daemon set [Serial] should list and delete a collection of DaemonSets listAppsV1NamespacedDaemonSet | (linux/amd64) kubernetes/$Format -- [sig-apps] Daemon set [Serial] should list and delete a collection of DaemonSets readAppsV1NamespacedDaemonSet | (linux/amd64) kubernetes/$Format -- [sig-apps] Daemon set [Serial] should list and delete a collection of DaemonSets (5 rows) If a test with these calls gets merged, test coverage will go up by 2 points This test is also created with the goal of conformance promotion. /sig apps /sig testing /sig architecture /area conformance
/triage accepted For Release 1.22
/open
/reopen
Reopened this issue. <detailsIn response to : /reopen </details