jiebi/CodeConvo huggingface dataset:
Change:
"STANDARD_DS4_V2_PROMO":  32, "STANDARD_DS5_V2":        64, "STANDARD_DS5_V2_PROMO":  64, <ins> "STANDARD_E16-4DS_V4":    32, </ins> "STANDARD_E16-4S_V3":     32, <ins> "STANDARD_E16-8DS_V4":    32, </ins> "STANDARD_E16-8S_V3":     32, "STANDARD_E16AS_V4":      32, "STANDARD_E16A_V4":       32, <ins> "STANDARD_E16DS_V4":      32, "STANDARD_E16D_V4":       32, </ins> "STANDARD_E16S_V3":       32, "STANDARD_E16_V3":        32, "STANDARD_E20AS_V4":      32, "STANDARD_E20A_V4":       32, <ins> "STANDARD_E20DS_V4":      32, "STANDARD_E20D_V4":       32, </ins> "STANDARD_E20S_V3":       32, "STANDARD_E20_V3":        32, "STANDARD_E2AS_V4":       4, "STANDARD_E2A_V4":        4, <ins> "STANDARD_E2DS_V4":       4, "STANDARD_E2D_V4":        4, </ins> "STANDARD_E2S_V3":        4, "STANDARD_E2_V3":         4, <ins> "STANDARD_E32-16DS_V4":   32, </ins> "STANDARD_E32-16S_V3":    32, <ins> "STANDARD_E32-8DS_V4":    32, </ins> "STANDARD_E32-8S_V3":     32, "STANDARD_E32AS_V4":      32, "STANDARD_E32A_V4":       32, <ins> "STANDARD_E32DS_V4":      32, "STANDARD_E32D_V4":       32, </ins> "STANDARD_E32S_V3":       32, "STANDARD_E32_V3":        32, <ins> "STANDARD_E4-2DS_V4":     8, </ins> "STANDARD_E4-2S_V3":      8, "STANDARD_E48AS_V4":      32, "STANDARD_E48A_V4":       32, <ins> "STANDARD_E48DS_V4":      32, "STANDARD_E48D_V4":       32, </ins> "STANDARD_E48S_V3":       32, "STANDARD_E48_V3":        32, "STANDARD_E4AS_V4":       8, "STANDARD_E4A_V4":        8, <ins> "STANDARD_E4DS_V4":       8, "STANDARD_E4D_V4":        8, </ins> "STANDARD_E4S_V3":        8, "STANDARD_E4_V3":         8, <ins> "STANDARD_E64-16DS_V4":   32, </ins> "STANDARD_E64-16S_V3":    32, "STANDARD_E64-32S_V3":    32, "STANDARD_E64AS_V4":      32, "STANDARD_E64A_V4":       32, <ins> "STANDARD_E64DS_V4":      32, "STANDARD_E64D_V4":       32, </ins> "STANDARD_E64IS_V3":      32, "STANDARD_E64I_V3":       32, "STANDARD_E64S_V3":       32, "STANDARD_E64_V3":        32, <ins> "STANDARD_E8-2DS_V4":     16, </ins> "STANDARD_E8-2S_V3":      16, <ins> "STANDARD_E8-4DS_V4":     16, </ins> "STANDARD_E8-4S_V3":      16, "STANDARD_E8AS_V4":       16, "STANDARD_E8A_V4":        16, <ins> "STANDARD_E8DS_V4":       16, "STANDARD_E8D_V4":        16, </ins> "STANDARD_E8S_V3":        16, "STANDARD_E8_V3":         16, "STANDARD_E96AS_V4":      32,

Discussion:
<!-- Please only use this template for submitting enhancement requests -- What would you like to be : related to Why is this needed: /assign /sig azure
here is the way about how to get MaxDataDiskCount: and then build kubelet, copy kubelet to agent node and then get MaxDataDiskCount data: There are 207 VM sizes totally.
Update: this command could get VM size list easily:
Change:
}(); err != nil || ok { return err } <del> } else { </del> <ins> } if sliding { </ins> timeCh = t.C() <ins> } for { // Wait for either the context to be cancelled or the next invocation be called </ins> select { case <-doneCh: return ctx.Err() case <-timeCh: } <del> } for { // checking ctx.Err() is slightly faster than checking a select </del> <ins> // IMPORTANT: Because there is no channel priority selection in golang // it is possible for very short timers to "win" the race in the previous select // repeatedly even when the context has been canceled.  We therefore must // explicitly check for context cancellation on every loop and exit if true to // guarantee that we don't invoke condition more than once after context has // been cancelled. </ins> if err := ctx.Err(); err != nil { return err }

Discussion:
While trying to update to use latest version of package and to migrate away from deprecated , function, our tests fail as it seems new function immediately executes given condition twice, which is not mentioned anywhere. Result of executed test specified below: Since has been deprecated and it recommends using , I expected it to have the equivalent semantics to allow easy migration from deprecated functions, as no changelog or documentation mentions new semantics. Playground: Local: file with the following content: as . No response_ <details</details<details</details<details</details<details</details<details</details<details</details
/sig api-machinery
CC since you were involved in
/assign /triage accepted
I'd like to work on this one if it's allowed I think this is a simple fix with few lines removed: i.e.: instead of only wait a loop if immediate is false, we wait a time loop after special execution also if the immediate is true.
/assign
/assign
Change:
return printer.PrintObj(info.Object, o.Out) } <del> if !o.DryRun { metadata, err := meta.Accessor(info.Object) if err != nil { return err } </del> <ins> metadata, err := meta.Accessor(info.Object) if err != nil { return err } visitedUids.Insert(string(metadata.GetUID())) if !o.DryRun { </ins> annotationMap := metadata.GetAnnotations() if _, ok := annotationMap[corev1.LastAppliedConfigAnnotation]; !ok { fmt.Fprintf(o.ErrOut, warningNoLastAppliedConfigAnnotation, o.cmdBaseName)

Discussion:
<!-- This form is for bug reports and feature requests ONLY! If you're looking for help check and the . If the matter is security related, please disclose it privately via --Is this a BUG REPORT or FEATURE REQUEST?: /kind bug What happened: The dry run output listed all the resources that would be configured: deployments, HPAs, services, and an ingress: This was expected. However, it then listed all resources again (except for the HPAs) as being pruned: The config was then applied with: As expected, no resources were actually pruned. What you expected to happen: should actually display which resources are going to be pruned. How to reproduce it (as minimally and precisely as possible): a YAML file to with it: run + prune: should be listed as both configured and pruned it again with pruning: that the deployment is configured but not pruned, even though the dry run said it would be. Anything else we need to know?: Was trying to write a devops script that gave a warning before any resources would be pruned. Environment: Kubernetes version (use ):Cloud provider or hardware configuration: GKE OS (e.g. from /etc/os-release): (Lubuntu 18.04) Kernel (e.g. ):Install tools: Others:
Reiterating the mentions to trigger a notification: <detailsIn response to : 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
I can reproduce it, and i will try to fix it.
Change:
Containers: []v1.Container{ { Name:    "pv-recycler", <del> Image:   "busybox:latest", </del> <ins> Image:   "busybox:1.27", </ins> Command: []string{"/bin/sh"}, Args:    []string{"-c", "test -e /scrub && rm -rf /scrub/..?* /scrub/.[!.]* /scrub/*  && test -z "$(ls -A /scrub)" || exit 1"}, VolumeMounts: []v1.VolumeMount{

Discussion:
<!-- This form is for bug reports and feature requests ONLY! If you're looking for help check and the . --Is this a BUG REPORT or FEATURE REQUEST?: What happened: Use the above two files create one PV and PVC, then delete the PVC, the PV will become failed but not released. The busybox recycler never succeed for power. /sig storage 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. from /etc/os-release): Kernel (e.g. ): Install tools: Others:
/kind bug The solution is like image, we should enable end user can customize the recycle image. It will not only fail on power but also s390x, so we should make sure the recycle image can be customized. /cc any comments for the solution?
Dup of . This issue can be closed, since we've already got flags and for this.
Just search and , but found that they are only defined as flags and no one is using them, can you please help double check, am I missing anything?
Also the claiming that it does not support multi node cluster, this is not acceptable.
: please see Please try them out, if they do not work then we can see how to get those fixed (and avoid adding yet another config option)
Yes, since we may only got only one (maybe setup several for LB, but they can be considered identical), it is necessary for running on non-amd64 platorm to have the right busybox image, which is exactly trying to fix. I've reopened . , so the simplest way is just replacing to . And docker will help us choose the right os-arch busybox image. What's remaining that mentioned is whether we should adding a new flag to add registry url for such recycler pod image exclusively.
Thanks and I also found an example here We do not need the registry url as the pod template was customized by the end user and they can define where got the recycler images. The problem is that the customized recycler will not work in mixed environments as only one recycle pod can be specified in controller manager, so +1 to , we should make support multi arch.

not quite catch your idea of how to support, can you please provide some dummy yaml templates and some configuration files to explain? Thanks!
Actually all the , including , has been updated along with . This means will help us make the decision to choose the right busybox image. You can have a try to on different architectures, like and . A can help you and multi-arch docker images. With this support, on different os/arch can pull the right image with a same busybox image. As long as we have used such multi-arch images, those flags can work in a multi-node cluster.
Change:
err := framework.CheckTestingNSDeletedExcept(cs, ns) framework.ExpectNoError(err) err = framework.WaitForPodsRunningReady(cs, metav1.NamespaceSystem, int32(systemPodsNo), 0, framework.PodReadyBeforeTimeout, ignoreLabels) Expect(err).NotTo(HaveOccurred()) })

Discussion:
Chronically failing test. Perhaps covers deprecated behavior? /sig scalability /assign
shows up in
/sig scheduling is one of scheduling e2e test.
/assign I'll check this one.
According to the log, the balanced pods were not created by scheduler, the cpu/mem usage was unchanged.
This test failing every other run. Fix or disable? Blocking 1.7?
similar to , move to 1.8, but I'll still working on that.
Change:
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= <ins> github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= </ins> github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY=

Discussion:
Minimal Repro: Create 2 different disks Create 2 Pods each using one of the disks Start both pods on the same node You will notice one of the disks gets ed to a path: , then both disks are ed from to a target path: which is similar but at least uses the pod . Both of these volumes are being treated as the same volume in the Kubelet even though they are definitely not the same volume. Note: it may not be "treated" as the same volume - it may just be that since the paths are the same the following volumes see that the path is already a mountpoint and skip the step. This is the more likely scenario based on observations. The value is the "name" of the inline-volume. These can obviously be the same across different pods - we should actually be placing it in a more unique directory (based off the translated maybe?). /cc
/sig storage
The inline volume example I'm using (ignore the fact that is a complete misnomer): I've confirmed that changing the "name" makes inline volumes work well since there is no longer a collision on the paths
/assign
Alright, problem is sort of twofold: The referred to above for inline-volumes is set here: As we can see from the comment: it is set to the because the in-tree CSI Plugin makes a lot of naming assumptions based on the which for PVC/PVs is the PV name (unique in a cluster). Primarily, during unmount the CSI Plugin tries to from a "well known ": which happens to be some path based on the which for the inline volume is just the ( above). So we run into the problem that if we use the directory is not sufficiently unique for different disks. And if we use something else like then the unmount pathway is unable to find the . I think using is a no-go. So we need to use something sufficiently unique (like ) for the ( above) and fix up some of the other codepaths to either use different "well-known paths" to write to, or to fix up path generation code so they give us the correct locations. I'm also going to check to see whether 's refactor fixes this issue (because it might since it translates things earlier)
OK. Really good news.

your refactor in its current state actually fixes this issue if we set the to something unique here: Looks like the early translation is also making the pathway from the "correct" dir for inline migration. So I will create a PR that fixes this issue that should merge after
Change:
expected    bool }{ { <del> description: "one of the weights is MaxInt64", configs:     []priorities.PriorityConfig{{Weight: math.MaxInt64}, {Weight: 5}}, </del> <ins> description: "one of the weights is MaxTotalPriority(MaxInt64)", configs:     []priorities.PriorityConfig{{Weight: api.MaxTotalPriority}, {Weight: 5}}, </ins> expected:    true, }, { description: "after multiplication with MaxPriority the weight is larger than MaxWeight", <del> configs:     []priorities.PriorityConfig{{Weight: math.MaxInt64/api.MaxPriority + api.MaxPriority}, {Weight: 5}}, </del> <ins> configs:     []priorities.PriorityConfig{{Weight: api.MaxWeight + api.MaxPriority}, {Weight: 5}}, </ins> expected:    true, }, {

Discussion:
MaxInt const is exported in scheduler api although it is not needed to be exported. It is only used by . discussed that the common practice is to have API constants in /sig scheduling
cc
The problem is that it is part of a v1 API :(
Ok, it turns out they are not actually considered part of the API, and so we can remove them:
Should I open a PR to address removing those const values from ?
Yes, we can remove those in a followup PR to the one handling sized values.
Yes, this was the plan. /assign
remember to remove as well :)
Change:
o.PrintFlags.AddFlags(cmd) cmd.Flags().BoolVar(&o.overwrite, "overwrite", o.overwrite, "If true, allow annotations to be overwritten, otherwise reject annotation updates that overwrite existing annotations.") <ins> cmd.Flags().BoolVar(&o.list, "list", o.list, "If true, display the annotations for a given resource.") </ins> cmd.Flags().BoolVar(&o.local, "local", o.local, "If true, annotation will NOT contact api-server but run locally.") cmd.Flags().StringVarP(&o.selector, "selector", "l", o.selector, "Selector (label query) to filter on, not including uninitialized ones, supports '=', '==', and '!='.(e.g. -l key1=value1,key2=value2).") cmd.Flags().StringVar(&o.fieldSelector, "field-selector", o.fieldSelector, "Selector (field query) to filter on, supports '=', '==', and '!='.(e.g. --field-selector key1=value1,key2=value2). The server only supports a limited number of field queries per type.")

Discussion:
<!-- Please only use this template for submitting enhancement requests --What would you like to be : add --list option to kubectl annotate command Why is this needed: like kubectl label commandshow annotations quickly
/sig cli These SIGs are my best guesses for this issue. Please comment if I am incorrect about one. I am a bot run by vllry. ‍
/assign
Change:
if err != nil { return err } <ins> if len(externalIPs) > 0 { for _, externalIP := range externalIPs { err = testReachabilityOverExternalIP(externalIP, servicePort, pod) if err != nil { return err } } } </ins> } return nil }

Discussion:
What would you like to be : e2e test for service ExternalIPs Why is this needed: There is no test covering Service ExternalIPs Since we can not assume that the e2e binary will have connectivity against the nodes and that we can add routes to the environment, we are going to test it from a pod. I've verified that this works locally with the following commands: The test should leverage current framework, maybe something as A good example is here, maybe adding a ?
/sig network /help wanted /triage accepted
/help wanted /good-first-issue
/assign
I'd like to pick this up!
Ok,I'm not started :) /unassign /assign
There are two different externalIP codepaths, one for the case where the claimed external IP exists as an IP on the default interface, and one for where it does not. I suppose we could just temporarily add an IP to the default interface...
good idea Dan Please remember, it has to work for IPv6 and for IPv4 ... anyway, we can address these things during the review
This has been partially implemented with . Covering the code path for when an IP is does not exist on a node. I'll assign this back to you so you can split this issue or close it in favor of another issue. Thanks! /unassign /assign
what is the different codepath for ExternalIPs that already exist on the host? ~My reading is that the only difference is that it opens a local socket on that port, can you expand on this?~ Found it
so, it seems that this work in some environments because they are not using the bridge plugin why is not allowed that pods can reach ExternalIPs?
Wow, this is ancient and needs some fixing. This is not about preventing pod traffic from reaching those IPs. I had to really stare at it, and I am not 100% in my interpretation. First, we recognize such traffic from "off machine" (!physdev-is-in && !src=LOCAL, which we should probably switch to localDetector) and steer it to the Service. Second, we recognize ANY such traffic that is destined for a LOCAL address and shortcut that to the Service, Implicitly, traffic destined for this IP where the IP is not local goes to the system's default routing logic.

The reliance on the bridge plugin is awful and archaic and I will buy a beverage of your choice for whomever gets rid of that. I think localDetector can cover this, but not 100% sure
but the ExternalIP belongs to a service and we(kube-proxy) "knows" where to send it (to the service) , that is the part I'm not sure to understand, because whatever the user is doing with that ExternalIP it has to send it back to the cluster to reach the service. However, there is always context that is important and maybe I'm missing something. Assuming we want to handle ALL the ExternalIP traffic with kube-proxy, the logic will be much simpler: traffic to an externalIP will be ALWAYS sent to the Service (DNAT) if traffic is NOT LOCAL, we also SNAT
/remove-good-first-issue /remove-help-wanted
Change:
v1.NodeOutOfDisk, v1.NodeMemoryPressure, v1.NodeDiskPressure, <ins> v1.NodePIDPressure, </ins> // We don't change 'NodeNetworkUnavailable' condition, as it's managed on a control plane level. // v1.NodeNetworkUnavailable, }

Discussion:
<!-- This form is for bug reports and feature requests ONLY! If you're looking for help check and the . If the matter is security related, please disclose it privately via --Is this a BUG REPORT or FEATURE REQUEST?: What happened: when the node lost connection with master , using 'kubectl describe node' find the NodePIDPressure is false , no switch to unknown. What you expected to happen: PIDPressure Unknown Fri, 14 Sep 2018 05:13:09 +0800 Fri, 14 Sep 2018 05:13:53 +0800 NodeStatusUnknown Kubelet stopped posting node status. How to reproduce it (as minimally and precisely as possible): stop kubelet, wait the node Notready check the node status 'kubectl describe node' Anything else we need to know?: Environment: Kubernetes version (use ): Cloud provider or hardware configuration: OS (e.g. from /etc/os-release): Kernel (e.g. ): Install tools: Others:
/sig node
Change:
} func (s *ServiceController) loadBalancerName(service *api.Service) string { <del> return cloudprovider.GetLoadBalancerName(s.clusterName, service.Namespace, service.Name) </del> <ins> return cloudprovider.GetLoadBalancerName(service) </ins> } func getTCPPorts(service *api.Service) ([]int, error) {

Discussion:
Since this PR got merged, the ELB e2e test, which was consistently succeeding, is now consistently failing: Revert now that is in, and fix the tests that were relying on it. (details) Commit by arob Revert now that is in, and fix the tests that were relying on it. The file was modified The file was modified The file was modified I'm going to roll it back to confirm.
Change:
inputFieldMappingFuncs: map[reflect.Type]FieldMappingFunc{}, inputDefaultFlags:      map[reflect.Type]FieldMatchingFlags{}, } <ins> c.RegisterConversionFunc(byteSliceCopy) return c } // Prevent recursing into every byte... func byteSliceCopy(in *[]byte, out *[]byte, s Scope) error { *out = make([]byte, len(*in)) copy(*out, *in) return nil </ins> } // Scope is passed to conversion funcs to allow them to continue an ongoing conversion.

Discussion:
E.g., it calls Convert() for every byte of a slice of uint8. E0330 22:15:23. 5352 ] TIM: converting bool E0330 22:15:23. 5352 ] TIM: converting []v1.NamedExtension E0330 22:15:23. 5352 ] TIM: converting []v1.NamedCluster E0330 22:15:23. 5352 ] TIM: converting []v1.NamedCluster E0330 22:15:23. 5352 ] TIM: converting v1.Cluster E0330 22:15:23. 5352 ] TIM: converting v1.Cluster E0330 22:15:23. 5352 ] TIM: converting string E0330 22:15:23. 5352 ] TIM: converting string E0330 22:15:23. 5352 ] TIM: converting bool E0330 22:15:23. 5352 ] TIM: converting string E0330 22:15:23. 5352 ] TIM: converting []uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 E0330 22:15:23.

5352 ] TIM: converting uint8 E0330 22:15:23. 5352 ] TIM: converting uint8 ... thousands of these.
There's an easy fix for this :/