jiebi/CodeConvo huggingface dataset:
Change:
"fmt" "strings" <ins> "github.com/davecgh/go-spew/spew" </ins> "github.com/golang/glog" )

Discussion:
We now have pretty structured way of validating api object, but the error message to end user is not descriptive, e.g. when creating a replication controller with restart policy 'never', we get: even as simple as label name, we shouldn't assume end-user is familiar with our requirement. Apart from what is wrong, we'd better also give why it is wrong.
The main thing wrong here is not having a useful String() method. and have both been pretty adamant about not attaching code to API objects, but here's a clear UX justification. What if we only attached methods to internal API objects, not versioned ones? Also: this should print %#v, rather than %+v, which would be a BIT more readable.
Orrrr we could switch to spew, which is already a dep.
Actually we're printing a reflect.Value there, which makes no sense at all. I will fix. EDIT: no we aren't, I can't read-- will still fix though
Change:
// newDefaultFieldManager is a helper function which wraps a Manager with certain default logic. func newDefaultFieldManager(f Manager, typeConverter TypeConverter, objectConverter runtime.ObjectConvertor, objectCreater runtime.ObjectCreater, kind schema.GroupVersionKind, ignoreManagedFieldsFromRequestObject bool) *FieldManager { <del> f = NewManagedFieldsUpdater(f) f = NewStripMetaManager(f) f = NewBuildManagerInfoManager(f, kind.GroupVersion()) f = NewCapManagersManager(f, DefaultMaxUpdateManagers) f = NewProbabilisticSkipNonAppliedManager(f, objectCreater, kind, DefaultTrackOnCreateProbability) f = NewLastAppliedManager(f, typeConverter, objectConverter, kind.GroupVersion()) f = NewLastAppliedUpdater(f) return NewFieldManager(f, ignoreManagedFieldsFromRequestObject) </del> <ins> return NewFieldManager( NewLastAppliedUpdater( NewLastAppliedManager( NewProbabilisticSkipNonAppliedManager( NewCapManagersManager( NewBuildManagerInfoManager( NewManagedFieldsUpdater( NewStripMetaManager(f), ), kind.GroupVersion(), ), DefaultMaxUpdateManagers, ), objectCreater, kind, DefaultTrackOnCreateProbability, ), typeConverter, objectConverter, kind.GroupVersion()), ), ignoreManagedFieldsFromRequestObject, ) </ins> } // DecodeManagedFields converts ManagedFields from the wire format (api format)

Discussion:
<!-- Please only use this template for submitting reports about continuously failing tests or jobs in Kubernetes CI --pull-kubernetes-integration runkubectldiff_tests It only shows failure cases in recent 2 days. The last date is I tried to reproduce it locally, but can't
/sig testing
/sig cli
/cc
I’ve only briefly taken a look at this, but my understanding is that server-side diff is flaking because the timestamp is different (by like a second) between the one already applied and the diff apply. do you think this could be related to this recent change Could delaying when we update the timestamp cause it to sometimes get misaligned with what’s being diffed? I’m not super familiar with diff, but it feels like it should ignore differences between timestamps that get updated on each call, right? Is there some sort of mechanism we have in that knows to ignore timestamps that just isn’t being done for fields?
This error probably shows that we have a path that causes the object to be re-written to etcd when it shouldn't.
As we can see, the diff only shows a difference in the timestamp but not in the fields that are managed. We are not supposed to update the timestamp if the managed fields haven't changed. That timestamp only gets updated if the two steps happen in different seconds (that's why it's flaky). That is definitely not a flake but an actual failure.
Failed 81/236 times today in /priority critical-urgent I think, correct it if I am wrong.
/triage accepted
correct. who should be assigned as the owner of this?
I can take it, I'm looking into it now
/assign
Change:
<dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <del> <dc:title></dc:title> </del> <ins> <dc:title /> </ins> </cc:Work> </rdf:RDF> </metadata>

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 --AWS EBS CSI driver returns topology segments It should merge the topology segments Enabling , and then describe the I have found in the docs which indicates that the duplication is by intention Also I found this and pull
/assign
/sig storage /tirage accepted /assign
It's caused by the migration from CSI to in-tree PV. AWS EBS CSI driver provides PV with: CSI translation changes -and we end up with two same items in the array. It makes sense to squash these duplicates.
cc what do you think?
Why is aws csi driver provides PV with Seems to me this is not needed.
I believe aws csi driver recently changed to using kubernetes topology labels instead of vendor-specific topology labels. Note that the elements of a matchExpression are together. I'm not sure if that's the correct approach if the intention is to eventually get rid of the vendor-specific topology label. cc
I think the topology label is defined by the csi driver? Is it okay to get rid of the vendor specific label?
The intention was to put both labels on all nodes to maintain backwards compatibility with existing PVs. but provisioned PVs should only have one or the other, putting both labels on the PV is a bug: Now that we've released the bug and some PVs have both labels, it will be hard to remove the vendor specific label.
thanks for your follow up. After the provisioned PV is assigned to a node, removing the duplicate label would still be an issue ?
It depends on which label is going to be removed. I'd suggest to remove the in-tree one (), because we can be sure that nodes have the other label from registering the CSI driver.
+1
/triage accepted /assign
fixed by Closing
Change:
<dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <del> <dc:title></dc:title> </del> <ins> <dc:title /> </ins> </cc:Work> </rdf:RDF> </metadata>

Discussion:
The logo (, ) font does not match the others. I believe the png/pdf versions are correct.
What other ones? It should be the same font - they look the same to me...
Change:
// use a channel to ensure we don't look at the metric before it's // been set. ch := make(chan struct{}, 1) <ins> longestCh := make(chan struct{}, 1) </ins> mp.unfinished.notifyCh = ch <ins> mp.longest.notifyCh = longestCh </ins> c.Step(time.Millisecond) <-ch mp.unfinished.notifyCh = nil if e, a := .001, mp.unfinished.gaugeValue(); e != a { t.Errorf("expected %v, got %v", e, a) } <ins> <-longestCh mp.longest.notifyCh = nil </ins> if e, a := .001, mp.longest.gaugeValue(); e != a { t.Errorf("expected %v, got %v", e, a) }

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: pull-kubernetes-bazel-test Which test(s) are flaking: Testgrid link: Reason for failure: Anything else we need to know: To reproduce using
/sig api-machinery
Change:
} type DriverCapabilities struct { <del> Attach         bool `json:"attach"` SELinuxRelabel bool `json:"selinuxRelabel"` </del> <ins> Attach          bool `json:"attach"` SELinuxRelabel  bool `json:"selinuxRelabel"` SupportsMetrics bool `json:"supportsMetrics"` </ins> } func defaultCapabilities() *DriverCapabilities { return &DriverCapabilities{ <del> Attach:         true, SELinuxRelabel: true, </del> <ins> Attach:          true, SELinuxRelabel:  true, SupportsMetrics: false, </ins> } }

Discussion:
kind feature What happened: Currently there is no mechanism to report metrics as the flex plugins are not enabled to collect metrics. All flex volumes lack this feature as compared to in-tree/built-in drivers even though it is possible to collect such metrics for most of the plugins. What you expected to happen: Depending on the availability of the metrics from the mounted FS, flex plugins should allow to report metrics for the FS. How to reproduce it (as minimally and precisely as possible): The default behavior that can be proved easily by just running a command similar to the following command on a node that is running a flex volume. This will show that there are no metrics collected for flex volumes. kubectl proxy $curl 127.0.0.1:8001/api/v1/nodes/<IP/proxy/stats/summary Environment**: Kubernetes version (use ): 1.12 Cloud provider or hardware configuration: local x86 OS (e.g. from /etc/os-release): Ubuntu 16.04 Kernel (e.g. ): Linux KubeStorage 4.4.0-130-generic -Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018 x8664 x8664 x86_64 GNU/Linux Install tools: Others: /sig storage
+1 Yes, it will be good, if flex volume can support atleast the default metrics( i.e ), which most of the volume plugins support now. Based upon flex plugin "capabilities" parameters, it can be decided, whether the plugin supports "default metrics" or "nil metrics".
Change:
var addressType v1.NodeAddressType if strings.HasPrefix(i.HardwareAddr.String(), MAC_OUI_VC) || strings.HasPrefix(i.HardwareAddr.String(), MAC_OUI_ESX) { <del> addressType = v1.NodeExternalIP } else { addressType = v1.NodeInternalIP </del> <ins> v1.AddToNodeAddresses(&addrs, v1.NodeAddress{ Type:    v1.NodeExternalIP, Address: ipnet.IP.String(), }, v1.NodeAddress{ Type:    v1.NodeInternalIP, Address: ipnet.IP.String(), }, ) </ins> } <del> v1.AddToNodeAddresses(&addrs, v1.NodeAddress{ Type:    addressType, Address: ipnet.IP.String(), }, ) </del> glog.V(4).Infof("Find local IP address %v and set type to %v", ipnet.IP.String(), addressType) } }

Discussion:
updated the automatic reloading logic from file watch to polling. This change in behavior needs to be documented [ ] Update the v1.29 release notes to call out this change in behavior (ref: ) to replace references to file watch with polling. /sig auth /triage accepted /assign nilekhc
Change:
driverName: driverName, } if shouldTimeout { <del> timeout := plugin.PluginClientTimeout + 30*time.Millisecond </del> <ins> timeout := plugin.PluginClientTimeout + time.Second </ins> fakeDRADriverGRPCServer.timeout = &timeout }

Discussion:
test Since Oct 25th No response stack trace: Test has been flaking with master golang as well. /sig node
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
seems like we need to increase the timeout.. /assign
I tried with different values of timeout in function viz and running test binary using stress tool. In most cases, test is getting passed.
Flake in master blocking board: /cc
Flake in as well.
is waiting for approve been a while, which try to fix the flake
We can still observe this flakiness with 30ms timeout in CI Wondering, if timeout has to be increased further. Please let us know if more information is required.
It flaked in today as well. /reopen
Reopened this issue. <detailsIn response to : It flaked in today as well. </details
We're seeing this flake frequently downstream as well, both in TestUnprepareResources and TestPrepareResources.
cc
is trying to fix it but still pending
Change:
} t.Logf("Found InstanceID(%s) = %sn", nodeName, instanceID) <del> instanceID, err = i.InstanceID(context.TODO(), nonExistingVM) </del> <ins> _, err = i.InstanceID(context.TODO(), nonExistingVM) </ins> if err == cloudprovider.InstanceNotFound { t.Logf("VM %s was not found as expectedn", nonExistingVM) } else if err == nil {

Discussion:
Hi, I am currently working on k8s cloud provider and I ran in pkg/cloudprovider package. Turned out that some providers code have unused variables and logic problems. Here is the report: session.New is deprecated some bugs and unused values oauth2.NoContext is deprecated, overwritten ctx and miss error checks missing error check unused values missing error check, loop logic issues Hope this report can help to cloud provider working groups. :)
/kind bug /sig cloud-provider /sig vmware
PR open for vsphere cloud provider
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. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
Stale issues rot after 30d of inactivity. Mark the issue as fresh with . Rotten issues close after an additional 30d of inactivity. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle rotten
Rotten issues close after 30d of inactivity. Reopen the issue with . Mark the issue as fresh with . Send feedback to sig-testing, kubernetes/test-infra and/or . /close
Closing this issue. <detailsIn response to : Rotten issues close after 30d of inactivity. Reopen the issue with . Mark the issue as fresh with . /close 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:
func (csiNodeStrategy) Validate(ctx context.Context, obj runtime.Object) field.ErrorList { csiNode := obj.(*storage.CSINode) <del> // in 1.22, on create, set AllowLongNodeID=false // in 1.23, on create, set AllowLongNodeID=true </del> validateOptions := validation.CSINodeValidationOptions{ <del> AllowLongNodeID: false, </del> <ins> AllowLongNodeID: true, </ins> } errs := validation.ValidateCSINode(csiNode, validateOptions)

Discussion:
will be used as a preparation for relaxing CSI Node id length limitation, in 1.22, we need to make sure the AllowLongNodeID is set correctly according to the comment /sig storage /assign /cc
/milestone 1.22
You must be a member of the GitHub team to set the milestone. If you believe you should be able to issue the /milestone command, please contact your and have them propose you as an additional delegate for this responsibility. <detailsIn response to : /milestone 1.22 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
Can you make a better title - I almost jumped out of my skin :)
Oops, sorry about that lol
/triage accepted
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules: After 90d of inactivity, is applied After 30d of inactivity since was applied, is applied After 30d of inactivity since was applied, the issue is closed You can: Mark this issue or PR as fresh with Mark this issue or PR as rotten with Close this issue or PR with Offer to help out with [Issue Triage][1] Please send feedback to sig-contributor-experience at . /lifecycle stale [1]:
Change:
// absGidMin <= defGidMin <= defGidMax <= absGidMax absoluteGidMin          = 2000 absoluteGidMax          = math.MaxInt32 <del> heketiAnn               = "heketi-dynamic-provisioner" glusterTypeAnn          = "gluster.org/type" glusterDescAnn          = "Gluster: Dynamically provisioned PV" </del> linuxGlusterMountBinary = "mount.glusterfs" autoUnmountBinaryVer    = "3.11" )

Discussion:
several operations to the glusterfs mount operation that nodes are not permitted to perform: looks up arbitrary secrets based on storage class parameters. this will not succeed, as the node authorizer will only allow nodes access to secrets referenced by pods or persistent volumes used by the node attempts to create a service and endpoint using the node's API client. nodes do not have permission to create arbitrary endpoints and services. For both of those reasons, that recreate operation will fail when attempted from the node. The recreate operation should probably move to one of the storage-related controllers (provisioner or attach/detach) cc
Marking this with 1.7 milestone until we have a better idea of whether this is blocking or not for the 1.7 release.
CC Is the endpoint originally created by the user or by the volume plugin creating/deleting Endpoint objects? In addition to the concerns raised, having a volume create new API objects seems like a bad idea (abstraction layer violation?).
From on Slack: Unless there is justification otherwise, I will roll back the PR on Monday.
cc/
revert button doesn't work, have to do it manually
Revert PR is approved and awaiting merge (). Once that merges this issue can be closed.
Opened an E2E pr to catch this kind of behavior in the future. WIP, still exploring a method to reproduce and catch the behavior.
Change:
local -r ds_file="${dst_dir}/calico-policy-controller/calico-node-daemonset.yaml" sed -i -e "s@__CALICO_CNI_DIR__@/home/kubernetes/bin@g" "${ds_file}" fi <ins> if [[ "${NETWORK_POLICY_PROVIDER:-}" == "kube-network-policies" ]]; then setup-addon-manifests "addons" "kube-network-policies" fi </ins> if [[ "${ENABLE_DEFAULT_STORAGE_CLASS:-}" == "true" ]]; then setup-addon-manifests "addons" "storage-class/gce" fi

Discussion:
,%20google-gce all I can't say , but at least a few weeks ,%20google-gce No response No response /sig network
/assign
/triage accepted
Change:
id="svg2" version="1.1" inkscape:version="0.48.3.1 r9886" <del> sodipodi:docname="kubernetes.svg" </del> <ins> sodipodi:docname="kubernetes_logo.svg" </ins> inkscape:export-filename="/home/thockin/Downloads/kubernetes.png" inkscape:export-xdpi="90" inkscape:export-ydpi="90">

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 --AWS EBS CSI driver returns topology segments It should merge the topology segments Enabling , and then describe the I have found in the docs which indicates that the duplication is by intention Also I found this and pull
/assign
/sig storage /tirage accepted /assign
It's caused by the migration from CSI to in-tree PV. AWS EBS CSI driver provides PV with: CSI translation changes -and we end up with two same items in the array. It makes sense to squash these duplicates.
cc what do you think?
Why is aws csi driver provides PV with Seems to me this is not needed.
I believe aws csi driver recently changed to using kubernetes topology labels instead of vendor-specific topology labels. Note that the elements of a matchExpression are together. I'm not sure if that's the correct approach if the intention is to eventually get rid of the vendor-specific topology label. cc
I think the topology label is defined by the csi driver? Is it okay to get rid of the vendor specific label?
The intention was to put both labels on all nodes to maintain backwards compatibility with existing PVs. but provisioned PVs should only have one or the other, putting both labels on the PV is a bug: Now that we've released the bug and some PVs have both labels, it will be hard to remove the vendor specific label.
thanks for your follow up. After the provisioned PV is assigned to a node, removing the duplicate label would still be an issue ?
It depends on which label is going to be removed. I'd suggest to remove the in-tree one (), because we can be sure that nodes have the other label from registering the CSI driver.
+1
/triage accepted /assign
fixed by Closing
Change:
} } <ins> // nodeInSameCondition returns true if all effective types ("Status" is true) equals; // otherwise, returns false. func nodeInSameCondition(old []v1.NodeCondition, cur []v1.NodeCondition) bool { if len(old) == 0 && len(cur) == 0 { return true } c1map := map[v1.NodeConditionType]v1.ConditionStatus{} for _, c := range old { if c.Status == v1.ConditionTrue { c1map[c.Type] = c.Status } } for _, c := range cur { if c.Status != v1.ConditionTrue { continue } if _, found := c1map[c.Type]; !found { return false } delete(c1map, c.Type) } return len(c1map) == 0 } </ins> func (dsc *DaemonSetsController) updateNode(old, cur interface{}) { oldNode := old.(*v1.Node) curNode := cur.(*v1.Node) <del> if reflect.DeepEqual(oldNode.Labels, curNode.Labels) && reflect.DeepEqual(oldNode.Spec.Taints, curNode.Spec.Taints) { // If node labels and taints didn't change, we can ignore this update. </del> <ins> if reflect.DeepEqual(oldNode.Labels, curNode.Labels) && reflect.DeepEqual(oldNode.Spec.Taints, curNode.Spec.Taints) && nodeInSameCondition(oldNode.Status.Conditions, curNode.Status.Conditions) { // If node labels, taints and condition didn't change, we can ignore this update. </ins> return } dsList, err := dsc.dsLister.List(labels.Everything()) if err != nil { glog.V(4).Infof("Error enqueueing daemon sets: %v", err)

Discussion:
deamonset would not schedule pod on nodes of OutofDisk state,on the other hand, in it's updateNode func, it return directly if there is no change in labels or taints of the node. That is, ds controller could not make sense when a node turn into OutofDisk state, or recover from it. Unless we restart the controller-manager component
/assign
if other conditions in func "nodeShouldRunDaemonPod" changed? say, a node does not have enough cpu or memory resource to create the pod of ds, later I delete pods on it, and it satisfy the request now, but the ds controller could not feel it
, thanks for your cases, they're reasonable to me; let me find solutions for them.
Change:
"k8s.io/kubernetes/pkg/scheduler/algorithm/predicates" "k8s.io/kubernetes/pkg/scheduler/algorithm/priorities" "k8s.io/kubernetes/pkg/scheduler/api" <ins> schedulerapi "k8s.io/kubernetes/pkg/scheduler/api" </ins> kubeschedulerconfig "k8s.io/kubernetes/pkg/scheduler/apis/config" "k8s.io/kubernetes/pkg/scheduler/core" "k8s.io/kubernetes/pkg/scheduler/factory"

Discussion:
Kubernetes scheduler enables you to overwrite default Predicates/Priorities as well as configuring extenders in a "scheduler policy". In latest scheduler componentconfig API (v1alpha1), it can be a file or a configmap: However, if you defines a scheduler config file and specify a YAML policy file: It doesn't work. It's because only JSON is supported: It'd nice to enhance it with an UniversalSerilizer so as to support both JSON and YAML. /sig scheduling /help /priority important-longterm
This request has been marked as needing help from a contributor. Please ensure the request meets the requirements listed . If this request no longer meets these requirements, the label can be removed by commenting with the command. <detailsIn response to : Kubernetes scheduler enables you to overwrite default Predicates/Priorities as well as configuring extenders in a "scheduler policy". /help /priority important-longterm </details
/assign