jiebi/CodeConvo huggingface dataset:
Change:
framework.ExpectNoError(err, "Failed to patch ephemeral containers in pod %q", format.Pod(pod)) ginkgo.By("checking pod container endpoints") <del> _, err = framework.LookForStringInPodExecToContainer(pod.Namespace, pod.Name, ecName, []string{"/bin/echo", "marco"}, "marco", time.Minute) framework.ExpectNoError(err, "Failed to exec in pod %q ephemeral container %q", format.Pod(pod), ecName) _, err = framework.LookForStringInLog(pod.Namespace, pod.Name, ecName, "polo", time.Minute) framework.ExpectNoError(err, "Failed to find logs in pod %q ephemeral container %q", format.Pod(pod), ecName) </del> <ins> // Can't use anything depending on kubectl here because it's not available in the node test environment output := f.ExecCommandInContainer(pod.Name, ecName, "/bin/echo", "marco") gomega.Expect(output).To(gomega.ContainSubstring("marco")) log, err := e2epod.GetPodLogs(f.ClientSet, pod.Namespace, pod.Name, ecName) framework.ExpectNoError(err, "Failed to get logs for pod %q ephemeral container %q", format.Pod(pod), ecName) gomega.Expect(log).To(gomega.ContainSubstring("polo")) </ins> }) })

Discussion:
E2eNode Suite.[sig-node] Ephemeral Containers will start an ephemeral container in an existing pod node-kubelet-orphans Unknown, possibly was never green No response KEP: /sig node
Also need to fish this test out of the orphans by adding the label
can you please take a look?
yup, happy to /assign
could you explain this more? This label should exist even though the feature is no longer alpha?
Looks like the tests are still passing in the presubmits It looks like the kubectl invocation is asking for a username?
Moved to node features and now the error message is: kubectl isn't available to the node tests? Hmm..
/triage accepted
/reopen The test is flaking now, can you please take a look?
Reopened this issue. <detailsIn response to : /reopen 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
Ah, I think I know what the problem is. Didn't get a chance to look at it today but will get to it soon.
FYI, I spot checked several of the recent failures and so far none of them include the fix commit. Will keep an eye on it.
Yes, thank you. Looks very green now
Change:
"//pkg/util/mount:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/testing:go_default_library", <ins> "//vendor/github.com/Azure/go-autorest/autorest/to:go_default_library", </ins> "//vendor/k8s.io/api/core/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/types:go_default_library",

Discussion:
If I look at the code of azureFile plugin, it has fsGroup as an argument, but don't see its usage anywhere I also don't see anywhere explicitely stated that azureFile volume supports fsGroup.
/sig storage
For those landing here, a separate path to get the mount point to have the right permissions is to add this annotation to the PV metadata: This makes the plugin mount the volume in the Pod under those UID,GID. Obviously, this implies that one knows what those are for their workload in the container ...
If i create a PV like this, still mounted with the default root used into POD. StorageClass PV
Issues go stale after 90d of inactivity. Mark the issue as fresh with . Stale issues rot after an additional 30d of inactivity and eventually close. Prevent issues from auto-closing with an comment. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
/remove-lifecycle stale cc Let's check whether works for azure file.
/sig azure
is another way to set groupid(gid) While according to this , we also need to support Here is the code about setting fsgroup from securityContext. I will enable this feature and do a test, it should be 3 lines of code. /assign
BTW, this is all for Linux(UserID, GroupID), is there an identical setting for Windows container?
No, setting user for volumes doesn't work on Windows. Only the rw/ro options are implemented.
According to my investigation, though I put the following code in azure file , it does not take effect. The reason is azure file(cifs) mount does not support gid setting after file system mount, by default would be 0(root) So in summary, set fsGroup code in azure file is useless, user could set gid by mountOptions in storage class, here is an Let me know if you hav any concern about this issue Update: Root cause is azure file(cifs) mount does not support gid setting after file system mount, while azure disk supports.
is this true, that cifs does not support guid setting?
Of course cifs support gid setting, see example: I mean cifs does not support second time gid setting, kind of differnet than azure disk.

Anyway, I am working on a PR to support if no gid setting in azure file storage class, while if both sets, only gid from storage class would be used.
while the code is quite different than just add below 3 lines of code, actually below does not work: I will show you the PR tomorrow.
Change:
wg.Wait() } <ins> type fakeTimeBudget struct{} func (f *fakeTimeBudget) takeAvailable() time.Duration { return 2 * time.Second } func (f *fakeTimeBudget) returnUnused(_ time.Duration) {} </ins> func TestDispatchEventWillNotBeBlockedByTimedOutWatcher(t *testing.T) { backingStorage := &dummyStorage{} cacher, _, err := newTestCacher(backingStorage)

Discussion:
<!-- Please only use this template for submitting reports about flaky tests or jobs (pass or fail with no underlying change in code) in Kubernetes CI --Which jobs are flaking: bazel-test-master (periodic-kubernetes-bazel-test-master ) Which test(s) are flaking: gotest: Testgrid link: Reason for failure: Anything else we need to know: links to appreciated links to specific failures in spyglass appreciated <!-- Please see the deflaking doc () for more guidance! --cc
/sig api-machinery
This is continuing to be flaky with more recent failure:
/assign Would you mind taking a look here? thanks! /triage accepted
- can we somehow uncover when this started happening? This test is very old and it seems it started happening very recently, so it would be helpful to see when this started happening...
Triage shows flakes starting ~Sept 30: Before Sept 30 it seems the job was flaking much less frequently.
Might be related to I will take a look.
It seems it's not related to that PR (neither to the previous: ) As there were already failures like that on Sep 24th (before this one was merged). I will take a deeper look.
OK - it's not related to any changes mentioned before. I can reproduce this particular failure by simply adding somewhere in this block: So it's probably connected to cpu-starvation at the test level and the solution is to switch to less aggressive timeouts. Will send out a PR.
Actually - it appeared to be slightly more subtle then that. But I already fully understand the problem. It's purely test issue, but require a bit more changes (and I won't get to it today/tomorrow). I will send a fix for that early next week.
- if that changes anything from your tracking perspective ^^
No board changes yet - the next stage is "Observing" once this issue gets closed :) If you have time - I'd love to pick your brain/understand the error more thoroughly though! Hoping you drop a good explanation in your PR next week
Thanks for sharing those insights, on your discovery of the solution to this bug.
It seems the PR didn't address that fully. Looking.
out for review
Change:
} } <ins> if proxier.network.networkType == "Overlay" { providerAddress := proxier.network.findRemoteSubnetProviderAddress(ep.ip) isNodeIP := (ep.ip == providerAddress) isPublicIP := (len(providerAddress) == 0) klog.Infof("Endpoint %s on overlay network %s is classified as NodeIp: %v, Public Ip: %v", ep.ip, hnsNetworkName, isNodeIP, isPublicIP) containsNodeIP = containsNodeIP || isNodeIP containsPublicIP = containsPublicIP || isPublicIP } </ins> // Save the hnsId for reference LogJson(newHnsEndpoint, "Hns Endpoint resource", 1) hnsEndpoints = append(hnsEndpoints, *newHnsEndpoint)

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: In Overlay mode, When 2 service has the same backend node IP, the LB was not programmed correctly causing datapath issues. What you expected to happen: Service data path to work properly 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:
/sig network /sig windows These SIGs are my best guesses for this issue. Please comment if I am incorrect about one. I am a bot run by vllry. ‍
/triage unresolved Comment when the issue is assessed and confirmed. I am a bot run by vllry. ‍
Change:
"k8s.io/component-base/configz" "k8s.io/component-base/logs" compbasemetrics "k8s.io/component-base/metrics" <ins> metricsfeatures "k8s.io/component-base/metrics/features" </ins> "k8s.io/component-base/metrics/legacyregistry" <ins> "k8s.io/component-base/metrics/prometheus/slis" </ins> runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1" podresourcesapi "k8s.io/kubelet/pkg/apis/podresources/v1" podresourcesapiv1alpha1 "k8s.io/kubelet/pkg/apis/podresources/v1alpha1"

Discussion:
As per, , wire up metrics/slis for kubelet
/assign
/sig instrumentation
/sig node /triage accepted
Change:
Description: `By default the stdout and stderr from the process being executed in a pod MUST be sent to the pod's logs.` + "nn"}}, }, <ins> // SIGDescribe + KubeDescribe + It, Describe + KubeDescribe + It {"e2e/foo.go", ` var _ = framework.SIGDescribe("Feature", func() { KubeDescribe("Described by", func() { // Description: description1 framework.ConformanceIt("A ConformanceIt", func() {}) }) Describe("Also described via", func() { KubeDescribe("A nested", func() { // Description: description2 framework.ConformanceIt("ConformanceIt", func() {}) }) }) })`, []conformanceData{ {URL: "https://github.com/kubernetes/kubernetes/tree/master/e2e/foo.go#L6", TestName: "Feature Described by A ConformanceIt", Description: "description1nn"}, {URL: "https://github.com/kubernetes/kubernetes/tree/master/e2e/foo.go#L11", TestName: "Feature Also described via A nested ConformanceIt", Description: "description2nn"}, }}, </ins> // KubeDescribe + Context + It {"e2e/foo.go", ` var _ = framework.KubeDescribe("Feature", func() {

Discussion:
What happened: tried promoting a test with a tag in its full test description. The hierarchy of ginko-relevant AST's was . The tag was a in the top level . The full test description only came from , so the tag was missed. What you expected to happen: The conformance test list generator should have logged and ERROR and failed a test on the PR, calling out Disruptive as an invalid tag How to reproduce it (as minimally and precisely as possible): Check out locally and follow the directions in to generate the conformance list. The invalid test is in the list. Anything else we need to know?: Is there a function we can use to get the full test description from Ginkgo instead of rolling our own? If not, we should probably be maintaining a stack rather than just the last FYI who ran into this FYI who wrote the code to keep track of last
/sig architecture /area conformance
/milestone v1.16
/priority important-soon
/assign
GitHub didn't allow me to assign the following users: devaips. Note that only and repo collaborators can be assigned and that issues/PRs can only have 10 assignees at the same time. For more information please see <detailsIn response to : /assign 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:
By("Trying to dial each unique pod") for i, pod := range pods.Items { <del> resp, err := http.Get(fmt.Sprintf("http://%s:8080", pod.Status.HostIP)) </del> <ins> body, err := c.Get(). Prefix("proxy"). Resource("pods"). Name(string(pod.Name)). Do(). Raw() </ins> if err != nil { Failf("Controller %s: Failed to GET from replica %d: %v", name, i+1, err) } <del> defer resp.Body.Close() if resp.StatusCode != http.StatusOK { Failf("Controller %s: Expected OK status code for replica %d but got %d", name, i+1, resp.StatusCode) } body, err := ioutil.ReadAll(resp.Body) if err != nil { Failf("Controller %s: Failed to read the body of the GET response from replica %d: %v", name, i+1, err) } </del> // The body should be the pod name. if string(body) != pod.Name { Failf("Controller %s: Replica %d expected response %s but got %s", name, i+1, pod.Name, string(body))

Discussion:
Some of the e2e tests specify HostPort in their pod configurations. This can cause issues running those tests if the port is already in use.
We've been removing these over the last week and a half and I think that may be the only one left remaining.
We need to decide if HostPort is a supported use case for Kubernetes -- and if it's supported, then it needs e2e test coverage to ensure it remains functional. Note that supported and not-preferred are orthogonal. My understanding is that it's supported-but-not-preferred and that there are reasonable use cases for using it.
Change:
<del> /* Copyright 2016 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. */ package workqueue import "time" type TimedWorkQueue struct { *Type } type TimedWorkQueueItem struct { StartTime time.Time Object    interface{} } func NewTimedWorkQueue() *TimedWorkQueue { return &TimedWorkQueue{New()} } // Add adds the obj along with the current timestamp to the queue. func (q TimedWorkQueue) Add(timedItem *TimedWorkQueueItem) { q.Type.Add(timedItem) } // Get gets the obj along with its timestamp from the queue. func (q TimedWorkQueue) Get() (timedItem *TimedWorkQueueItem, shutdown bool) { origin, shutdown := q.Type.Get() if origin == nil { return nil, shutdown } timedItem, _ = origin.(*TimedWorkQueueItem) return timedItem, shutdown } func (q TimedWorkQueue) Done(timedItem *TimedWorkQueueItem) error { q.Type.Done(timedItem) return nil } </del>

Discussion:
The TimedWorkQueue object appears to lack a critical feature of the original WorkOueue, namely that similar items are aggregated together. By adding the time member to to the key type, it ensures that (time, item) pairs are unique-- you can add the same item multiple times as long as the time differs. This removes the guarantee that two goroutines wouldn't process the same item at the same time.
Iirc, the timed queue feeds a regular queue, so the guarantee still holds
Sorry, I was thinking of the delaying queue, which does key correctly
I'm going to remove timed workqueue. It's used to gather metrics for queues used in the garbage collector. This feature is supported by a regular workqueue now.
Change:
### Alternatives <del> A contributed [example](coreos/coreos_multinode_cluster.md) allows you to setup a Kubernetes cluster based on [CoreOS](http://www.coreos.com), using EC2 with user data (cloud-config). </del> <ins> CoreOS maintains [a CLI tool](https://coreos.com/kubernetes/docs/latest/kubernetes-on-aws.html), `kube-aws` that will create and manage a Kubernetes cluster based on [CoreOS](http://www.coreos.com), using AWS tools: EC2, CloudFormation and Autoscaling. </ins> ## Getting started with your cluster

Discussion:
Our docs say this: I think though that example is out of date (?). We should make sure to point it to the right place.
cc
where should this point?
The official CoreOS guides are documented/linked here: The decision made a few months ago was to leave the previous community content, but should we revisit that?
Side note, a link to our AWS tool/guide probably needs to be there as well
What file contains that sentence?
Change:
// GetPowerStatusByNodeName returns the power state of the specified node. func (ss *scaleSet) GetPowerStatusByNodeName(name string) (powerState string, err error) { <ins> managedByAS, err := ss.isNodeManagedByAvailabilitySet(name, azcache.CacheReadTypeUnsafe) if err != nil { klog.Errorf("Failed to check isNodeManagedByAvailabilitySet: %v", err) return "", err } if managedByAS { // vm is managed by availability set. return ss.availabilitySet.GetPowerStatusByNodeName(name) } </ins> _, _, vm, err := ss.getVmssVM(name, azcache.CacheReadTypeDefault) if err != nil { return powerState, err

Discussion:
What happened: When the standalone (or VMAS) instance backing a registered node is removed (from Azure, ie. the instance is deleted), that node will remain forever due to the Azure cloud provider only checking whether the node was removed from a containing VMSS. Moreover this will triggers frequent VMSS full re-scans (when the instance name conforms to the expected VMSS instances name format, as we cache miss on every call), hammering Azure's VMSS List API, and causing throttling. A VMAS/standalone node leaving a cluster would cause controller-manager to log that error (here on k8s v1.18.2): What you expected to happen: The cloud provider should answer CM node lifecycle controller that the VM instance went missing and the node can be garbage collected. How to reproduce it (as minimally and precisely as possible): 1- Create a non-VMSS Azure node 2- Configure it to register to an Azure k8s cluster 3- Delete that node's instance from Azure console Anything else we need to know?: Environment: Kubernetes version (use ): 1.18.2 Cloud provider or hardware configuration: Azure, controller-manager running with and OS (e.g: ): Ubuntu 20.04 LTS Kernel (e.g. ): Linux 5.4.0-1010-azure Install tools: Network plugin and version (if this is a network-related bug): Others:
/sig cloud-provider /area provider/azure
Change:
<-executed t.Logf("runDelegationTest received executed signal at " + time.Now().String()) <ins> wg.Wait() t.Logf("runDelegationTest nested decorators finished at " + time.Now().String()) </ins> } func TestProc_doWithNestedX(t *testing.T) {

Discussion:
Can we get this fixed ASAP? Thanks!
yep, thanks for reporting , Brendan Burns wrote:
how reproduceable is this? I have some changes that I think will resolve it but I couldn't reproduce locally even when all my cpu's were pretty tied up and using a high GOMAXPROCS.
flakey label process?
the labelling is due to me failing @ github's label interface. Bulk editing labels removes them if any of the selected things have the label sigh Thanks for the quick fix.
Change:
import ( "github.com/GoogleCloudPlatform/kubernetes/pkg/api" "github.com/GoogleCloudPlatform/kubernetes/pkg/labels" <ins> "github.com/GoogleCloudPlatform/kubernetes/pkg/watch" </ins> ) // FakePods implements PodsInterface. Meant to be embedded into a struct to get a default

Discussion:
PodInterface should have Watch method behaving in the same way as ServiceInterface.Watch does. Use case: a monitoring system (namely Prometheus) expects to get the list of monitored servers performing a DNS-SD query. Special service (similar to kube2sky shipped with Kubernetes) mirrors status of running Pods into etcd, which is in turn monitored by SkyDNS server and exported as DNS-SD. Schematically the data flow looks like this: Kubernetes -kube2sky -etcd -SkyDNS -Prometheus. The biggest challenge is to deliver list of all running pods from Kubernetes to kube2sky. Currently kube2sky can only poll Kubernetes with PodInterface.List() each N seconds, which is not efficient. Having a Watch method would be much better.
cc Do you know why we do not support watch?
Every object should support Watch.
Watching status doesn't currently work -- that's .
I agree with OP. This is just an accident of history; some boilerplate in the client isn't completely filled out. As Brian mentions, not every field is currently watchable but that's being addressed elsewhere.
This is relevant to your interests potentially w/ your work on
This is a pretty simple change if someone wants to get their feet wet. :)
I'll work on it.
Change:
# copy the binaries and scripts to the ~/kube directory on the master scp -r $SSH_OPTS  saltbase/salt/generate-cert/make-ca-cert.sh  <ins> easy-rsa.tar.gz  </ins> ubuntu/reconfDocker.sh  "${KUBE_CONFIG_FILE}"  ubuntu/util.sh 

Discussion:
cluster/saltbase/salt/generate-cert/make-ca- sets but does not echo what it is doing, so in the case of an error there is no evidence of which command produced the error.
Change:
return &Result{err: err} } } <del> return &Result{err: fmt.Errorf("resource(s) were provided, but no name, label selector, or --all flag specified")} </del> <ins> return &Result{err: fmt.Errorf("resource(s) were provided, but no name was specified")} </ins> } return &Result{err: missingResourceError} }

Discussion:
What happened: Kubectl patch sub-command shows wrong error help message if an input is wrong. The error message says and when I try to use flag it says . What you expected to happen: I expected either the first error message to not have or should have a flag . How to reproduce it (as minimally and precisely as possible): If you run the following command without a node name you get this error: As the above error said you can specify , you specify that. This fails with another error saying is unknown flag: And in the help there is no flag: Environment: Kubernetes version (use ):
/sig cli
I think we need to decide whether to add flag --all and --selector to kubectl patch. After the decision, i can help.
/assign
on my queue, will look tomorrow :D
/triage accepted Probably just need to update error message here.
oh sorry, missed that one. Will look now
/assign
OK, so we decided to correct the error message per the PR right? :)
as you're dealing with this PR, I'll left you as assignee and follow the PR review :) /unassign
Change:
usingEviction:                   false, getPodFn:                        getPodFn, onDoneFn:                        d.OnPodDeletedOrEvicted, <ins> onFinishFn:                      d.OnPodDeletionOrEvictionFinished, </ins> globalTimeout:                   globalTimeout, skipWaitForDeleteTimeoutSeconds: d.SkipWaitForDeleteTimeoutSeconds, out:                             d.Out,

Discussion:
kubedrain has "onPodDeletedOrEvicted" callback that can be used in custom controllers. It would be very helpful if we add more callbacks that can give more granular control over monitoring, like "onPodDeletionOrEvicitionStarted" and "onPodDeletionOrEvictionFailed". It would help monitor the draining of nodes on a more granular level. Sometimes while draining, if the pod is stuck during the eviction or deletion of node, there is not much information that custom controllers can get from kubedrain, with the above-mentioned callbacks custom controllers will know which pod is evicting or if it failed during the eviction process.
/sig node
What is the custom controllers in your scenario? Can you elaborate on what you want to achieve with more details. Is this is kubectl improvement, the best sig to involve is sig cli. /sig cli
/remove-sig node please re-apply the sig node if this will end up being a request to sig node
In our case we have in CAPI (). Sometimes while draining, if the pod or volume is stuck during the eviction, there is not much information that we get from kubedrain.Helper. It would be much easier for the controller to report these kinds of issues with more granular callbacks like "onPodDeletionOrEvicitionStarted" and "onPodDeletionOrEvictionFailed" on kubedrain.Helper.
/assign Assigning this to myself, I have discussed this issue in sig-cli community meeting and they have given green light for this improvement.
/triage accepted /priority backlog