jiebi/CodeConvo huggingface dataset:
Change:
t.Errorf("Expected publicIP resource exists, when it is not an internal service") } <del> if publicIP.Tags == nil || publicIP.Tags["service"] == nil { t.Errorf("Expected publicIP resource has tags[service]") </del> <ins> if publicIP.Tags == nil || publicIP.Tags[serviceTagKey] == nil { t.Errorf("Expected publicIP resource has tags[%s]", serviceTagKey) </ins> } serviceName := getServiceName(service) <del> if serviceName != *(publicIP.Tags["service"]) { t.Errorf("Expected publicIP resource has matching tags[service]") </del> <ins> if serviceName != *(publicIP.Tags[serviceTagKey]) { t.Errorf("Expected publicIP resource has matching tags[%s]", serviceTagKey) </ins> } <ins> if publicIP.Tags[clusterNameKey] == nil { t.Errorf("Expected publicIP resource has tags[%s]", clusterNameKey) } if *(publicIP.Tags[clusterNameKey]) != testClusterName { t.Errorf("Expected publicIP resource has matching tags[%s]", clusterNameKey) } </ins> // We cannot use service.Spec.LoadBalancerIP to compare with // Public IP's IPAddress // Because service properties are updated outside of cloudprovider code

Discussion:
<!-- Please use this template while reporting a bug and provide as much info as possible. Not doing so may result in your bug not being addressed in a timely manner. Thanks! If the matter is security related, please disclose it privately via --What happened: We deployed two Kubernetes clusters to the same Azure Resource Group. Created services of load balancer type on both clusters. One of the services never received a public IP. Upon investigation, we noticed that the first Kubernetes cluster deleted the Azure Public IP that was created for the service by the other cluster. Apparently, all public IPs in the resource group are retrieved: then public IPs which don't match this criteria: are deleted. This logic besides the name of the kubernetes service should also consider the K8s cluster where the public IP originated from to avoid stepping on each other's toes when multiple clusters share the same resource group. What you expected to happen: In case multiple clusters run in the same resource group a cluster should delete only resources created by itself. How to reproduce it (as minimally and precisely as possible): Create two Kubernetes clusters (1.14) with different cluster names to the same resource group than create kubernetes services of load balancer type in each cluster. Anything else we need to know?: Environment: Kubernetes version (use ): 1.4 Cloud provider or hardware configuration: Azure OS (e.g: ): Kernel (e.g. ): Install tools: Network plugin and version (if this is a network-related bug): 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
thanks for reporting the issue, this is the bug we should fix for sharing resource group. /sig azure /kind bug /assign
Change:
return svc.Networks.Get(networkProjectID, networkID).Do() } <ins> // listSubnetworksOfNetwork returns a list of subnetworks for a particular region of a network. func listSubnetworksOfNetwork(svc *compute.Service, networkProjectID, networkID, region string) ([]*compute.Subnetwork, error) { var subnets []*compute.Subnetwork err := svc.Subnetworks.List(networkProjectID, region).Filter(fmt.Sprintf("network eq .*/%v$", networkID)).Pages(context.Background(), func(res *compute.SubnetworkList) error { subnets = append(subnets, res.Items...) return nil }) return subnets, err } </ins> // getProjectID returns the project's string ID given a project number or string func getProjectID(svc *compute.Service, projectNumberOrID string) (string, error) { proj, err := svc.Projects.Get(projectNumberOrID).Do()

Discussion:
/kind bug What happened: Continuation of . The fix to that bug only takes the first subnetwork in the correct region. However, if the user manual subnets in the region that the cluster exists, it's possible the cloudprovider could choose the wrong subnet. What you expected to happen: If no subnet is specified for a non-legacy network, always take the subnet which was automatically created. /assign /sig network /area platform/gce
Change:
initialConfig.ShutdownGracePeriodCriticalPods = metav1.Duration{Duration: nodeShutdownGracePeriodCriticalPods} }) <ins> ginkgo.BeforeEach(func() { ginkgo.By("Wait for the node to be ready") waitForNodeReady() }) </ins> ginkgo.AfterEach(func() { ginkgo.By("Emitting Shutdown false signal; cancelling the shutdown") err := emitSignalPrepareForShutdown(false)

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 --Testgrid link: Reason for failure:
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
/assign /sig node
Change:
if refreshToken == "" { return nil, fmt.Errorf("no refresh token in cfg: %s", cfgRefreshToken) } <ins> environment := ts.cfg[cfgEnvironment] if environment == "" { return nil, fmt.Errorf("no environment in cfg: %s", cfgEnvironment) } </ins> clientID := ts.cfg[cfgClientID] if clientID == "" { return nil, fmt.Errorf("no client ID in cfg: %s", cfgClientID)

Discussion:
What happened: AAD support in kubectl does not work for sovereign cloud The 'environment' parameter was introduced to support sovereign cloud, but it works in first round. The 'environment' value is not persisted, so follow-up requests will fail. What you expected to happen: 'environment' parameter persisted in kubectl config file. How to reproduce it (as minimally and precisely as possible): Use kubectl to connect to Azure sovereign cloud, make the token expire, and do auth. Anything else we need to know?: Environment: Kubernetes version (use ): 1.11 Cloud provider or hardware configuration: OS (e.g. from /etc/os-release): Kernel (e.g. ): Install tools: Others: <!-- DO NOT EDIT BELOW THIS LINE --/kind bug
There are no sig labels on this issue. Please add a sig label by either: a sig: e.g., to notify the contributor experience sig, OR the label manually: e.g., to apply the label Note: Method 1 will trigger an email to the group. See the . The in method 1 has to be replaced with one of these: bugs, feature-requests, pr-reviews, test-failures, proposals. <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
Change:
srcs = [ "attacher.go", "vsphere_volume.go", <ins> "vsphere_volume_block.go", </ins> "vsphere_volume_util.go", ], importpath = "k8s.io/kubernetes/pkg/volume/vsphere_volume", deps = [ "//pkg/cloudprovider/providers/vsphere:go_default_library", "//pkg/cloudprovider/providers/vsphere/vclib:go_default_library", <ins> "//pkg/features:go_default_library", </ins> "//pkg/util/keymutex:go_default_library", "//pkg/util/mount:go_default_library", "//pkg/util/strings:go_default_library", "//pkg/volume:go_default_library", "//pkg/volume/util:go_default_library", <ins> "//pkg/volume/util/volumepathhandler:go_default_library", </ins> "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/resource:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", <ins> "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", </ins> "//staging/src/k8s.io/cloud-provider:go_default_library", "//vendor/github.com/golang/glog:go_default_library", ],

Discussion:
FEATURE REQUEST: vSphere volume plugin does not support volume device yet. Need to add volumeMode in PV spec as other plugin did. release 1.12
/sig storage
Change:
service := obj.(*v1.Service) prevService := prevObj.(*v1.Service) if service == nil || prevService == nil { <del> utilruntime.HandleError(fmt.Errorf("onServiceUpdate() expected type v1.Endpoints, got %T, %T", prevObj, obj)) </del> <ins> utilruntime.HandleError(fmt.Errorf("onServiceUpdate() expected type v1.Service, got %T, %T", prevObj, obj)) </ins> return } if (service.Spec.Selector == nil) != (prevService.Spec.Selector == nil) {

Discussion:
with Selector is created is removed Endpoints and EndpointSlice controllers do not clean up Endpoint(Slice)s mirroring controller starts mirroring the Endpoints resource originally created by the Endpoints controller is back to the Service backing Service change created by mirroring controller still references original IP from step 4 At least one of the following: Endpoints and EndpointSlices to be cleaned up when the Service has the selector removed () mirrored EndpointSlice to be removed when the Service has a selector back See "What Happened" No response Most noticeable in Kubernetes 1.19+ since that's when kube-proxy starts reading from EndpointSlices by default. Any No response No response No response No response
/sig network /triage accepted /priority important-soon /cc
/assign
Change:
BeforeEach(func() { c = f.ClientSet <ins> framework.Skipf("test is broken. #40249") </ins> nodelist := framework.GetReadySchedulableNodesOrDie(c) // Skip this test on small clusters.  No need to fail since it is not a use

Discussion:
The current way tags are implemented excludes scenarios where more than one tag is applicable. For instance [Flaky] supersedes [Disruptive], which leads to both disruptive and non-disruptive tests running together, causing flakes more in the non-disruptive. e.g. We are seeing a scenario where PersistentVolumes[Volume][Serial][Flaky] are run parallel to NodeOutOfDisk[Flaky][Disruptive]. NodeOutOfDisk causes the kubelet to evict pods, which leads to flakes in PersistentVolumes. Test grid @ https://k8s- What's the reasoning behind the current hierarchical tag scheme? Is there an inherent benefit over a multi-tag grouping system? For instance, one that could distinguish [Flaky][Disruptive] tests from [Flaky][Serial] ones? Or one that would run a [Flaky][Serial] test serially? (My understanding is that Flaky tests alway run in parallel.) Given that this is a stability issue for E2E, I'd like to ask that it be given a higher priority for a fix. cc
Ok. Agree it's high priority , for the fix keep this open, /'d maybe we need to put a pull request to the test infra repo? We need to find where the scripts that setup tests are, I don't know whether the Jenkins jobs that define what tests to skip/run are in kubernetes core anymore ...
Change:
return true, nil } badPods = []api.Pod{} <ins> desiredPods = len(podList.Items) </ins> for _, pod := range podList.Items { if pod.Status.Phase != api.PodSucceeded { badPods = append(badPods, pod)

Discussion:
https://k8s- Failed: BeforeSuite {Kubernetes e2e suite} Previous issues for this test:
Change:
controllerLogger = klog.LoggerWithName(controllerLogger, "ResourceSlice controller") controllerCtx = klog.NewContext(controllerCtx, controllerLogger) d.resourceSliceController = resourceslice.StartController(controllerCtx, d.kubeClient, d.driverName, owner, driverResources) <del> return </del> <ins> return nil </ins> } // Inform running controller about new information. d.resourceSliceController.Update(driverResources) <ins> return nil </ins> } // RegistrationStatus implements [DRAPlugin.RegistrationStatus].

Discussion:
When calling draplugin.Start without supplying kubeclient no error is reported, while the kubeclient is vital for further announcement of resourceSlice. An error needs to be returned when nodeName or kubeclient parameters are not set. Do not supply kubeclient parameter when creating draplugin, for isntance here: No response master <details</details<details</details<details</details<details</details<details</details
/sig node /triage accepted /project 95
Change:
} if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetAutoDeletePVC) { <del> role.Rules = append(role.Rules, rbacv1helpers.NewRule("update").Groups(legacyGroup).Resources("persistentvolumeclaims").RuleOrDie()) </del> <ins> role.Rules = append(role.Rules, rbacv1helpers.NewRule("update", "delete").Groups(legacyGroup).Resources("persistentvolumeclaims").RuleOrDie()) </ins> } return role

Discussion:
When OwnerReferencesPermissionEnforcement admission plugin is enabled, StatefulSetAutoDeletePVC feature cannot delete PVCs when scaling down a StatefulSet. StatefulSetAutoDeletePVC deletes PVCs when scaling down a StatefulSet Kubernetes with OwnerReferencesPermissionEnforcement admission & StatefulSetAutoDeletePVC feature gate enabled For example, using local-up- a StatefulSet with some replicas and: down the statefulset. PVCs are still present && complains: No response <detailsToday's master, v1.27.0-alpha.0.46+-dirty </details<details</details<detailsFedora </details<details</details<details</details<details</details
cc /sig storage /sig apps
/assign /triage accepted /priority important-soon
Change:
func (lr *LogReporter) SpecSuiteWillBegin(config config.GinkgoConfigType, summary *types.SuiteSummary) { b := &bytes.Buffer{} b.WriteString("******************************************************n") <del> glog.V(2).Infof(b.String()) </del> <ins> glog.V(0).Infof(b.String()) </ins> } func (lr *LogReporter) BeforeSuiteDidRun(setupSummary *types.SetupSummary) {}

Discussion:
Looks like it maybe the ssh connect is getting killed
The relevant log snippet:
And another one, not just coreos.
Change:
// makeMounts determines the mount points for the given container. func makeMounts(pod *v1.Pod, podDir string, container *v1.Container, hostName, hostDomain, podIP string, podVolumes kubecontainer.VolumeMap) ([]kubecontainer.Mount, error) { <del> // Kubernetes only mounts on /etc/hosts if : // - container does not use hostNetwork and // - container is not an infrastructure(pause) container </del> <ins> // Kubernetes only mounts on /etc/hosts if: // - container is not an infrastructure (pause) container </ins> // - container is not already mounting on /etc/hosts <del> // When the pause container is being created, its IP is still unknown. Hence, PodIP will not have been set. // OS is not Windows mountEtcHostsFile := !pod.Spec.HostNetwork && len(podIP) > 0 && runtime.GOOS != "windows" </del> <ins> // - OS is not Windows // Kubernetes will not mount /etc/hosts if: // - when the Pod sandbox is being created, its IP is still unknown. Hence, PodIP will not have been set. mountEtcHostsFile := len(podIP) > 0 && runtime.GOOS != "windows" </ins> glog.V(3).Infof("container: %v/%v/%v podIP: %q creating hosts mount: %v", pod.Namespace, pod.Name, container.Name, podIP, mountEtcHostsFile) mounts := []kubecontainer.Mount{} for _, mount := range container.VolumeMounts { <ins> // do not mount /etc/hosts if container is already mounting on the path </ins> mountEtcHostsFile = mountEtcHostsFile && (mount.MountPath != etcHostsPath) vol, ok := podVolumes[mount.Name] if !ok || vol.Mounter == nil {

Discussion:
Currently, kubelet mounts hosts file for pods. For hostNetwork pods, the behavior is different and instead, kubelet relies on docker (or whatever container runtime) to mount the host's hosts file. We should have kubelet handle hosts file for hostNetwork pods. This would have several benefits: control over hosts file in case the container runtime does something consistent behavior between hostNetwork and non-hostNetwork pods consistent behavior between different container runtimes -managed hosts file enables features like to be used for hostNetwork pods Implementation would require: kubelet's or its caller output different content based on hostNetwork. i. If it's not hostNetwork, use existing behavior. ii. If it's using hostNetwork, read the content from the host's hosts file. hostNetwork constraint in deciding whether to mount the file Open Questions: do we treat changes to the host's hosts file? should the file's content be static between container restarts of the same Pod? or should every container restart pick up the latest content of the hosts file? the former seems better for consistency, but letter might be more in line with other features that use host resources like host volumes. condition to manage hosts file also excludes windows even though windows also the use of hosts file and the same format. seems like this should be supported also. windows-support ships, should it have validation against windows platform? the tricky bit is the client, API, and minions' kubelet may be running on different platforms, and currently, there's no precedence to platform validation. /kind feature /sig node
Change:
if [[ "${NETWORK_PROVIDER:-}" == "kubenet" ]] ||  [[ "${NETWORK_PROVIDER:-}" == "cni" ]]; then #TODO(andyzheng0831): We should make the cni version number as a k8s env variable. <del> local -r cni_tar="cni-8a936732094c0941e1543ef5d292a1f4fffa1ac5.tar.gz" </del> <ins> local -r cni_tar="cni-9d5e6e60e79491207834ae8439e80c943db65a69.tar.gz" </ins> download-or-bust "" "https://storage.googleapis.com/kubernetes-release/network-plugins/${cni_tar}" local -r cni_dir="${KUBE_HOME}/cni" mkdir -p "${cni_dir}"

Discussion:
We should update cni binaries to containernetworking/cni and release binaries for all arches. I do not have push access to the repo, so I guess some googler have to do it.
Thanks. I have this on my plate.
Change:
} for _, image := range containerImages { <del> names := append(image.RepoDigests, image.RepoTags...) </del> <ins> // make a copy to avoid modifying slice members of the image items in the list names := append([]string{}, image.RepoDigests...) names = append(names, image.RepoTags...) </ins> // Report up to MaxNamesPerImageInNodeStatus names per image. if len(names) > MaxNamesPerImageInNodeStatus { names = names[0:MaxNamesPerImageInNodeStatus]

Discussion:
See Today kubelet image manager returns the internal image list cache to caller directly. However, in we sort the image list, which introduces a data race. We should let image manager return a copy of image list instead of returning the list directly. /cc
There are no sig labels on this issue. Please add a sig label. <detailsA sig label can be by either: a sig: e.g., to notify the contributor experience sig, OR the label manually: e.g., to apply the label Note: Method 1 will trigger an email to the group. See the . The in method 1 has to be replaced with one of these: bugs, feature-requests, pr-reviews, test-failures, proposals 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
Code Freeze for 1.10 begins in 2 hours. If this issue represents a bug or change for 1.10, then it needs SIG approval in the form of a status/approved-for-milestone label. It also needs a priority/ Thanks!
Change:
glog.V(4).Infof("Pods to delete for daemon set %s: %+v", ds.Name, podsToDelete) for i := range podsToDelete { <del> if err := dsc.podControl.DeletePod(ds.Namespace, podsToDelete[i]); err != nil { </del> <ins> if err := dsc.podControl.DeletePod(ds.Namespace, podsToDelete[i], ds); err != nil { </ins> glog.V(2).Infof("Failed deletion, decrementing expectations for set %q/%q", ds.Namespace, ds.Name) dsc.expectations.DeletionObserved(dsKey) util.HandleError(err)

Discussion:
Currently RC emits an event when it's creating a pod: But nothing is emitted when a pod is deleted. We should create event for scaling both ways. cc
Change:
E2E_STORAGE_TEST_ENVIRONMENT=${KUBE_E2E_STORAGE_TEST_ENVIRONMENT:-false} # Evict pods whenever compute resource availability on the nodes gets below a threshold. <del> EVICTION_HARD="${EVICTION_HARD:-memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%}" </del> <ins> EVICTION_HARD="${EVICTION_HARD:-memory.available<250Mi,nodefs.available<10%,nodefs.inodesFree<5%}" </ins> # Optional: custom scheduling algorithm SCHEDULING_ALGORITHM_PROVIDER="${SCHEDULING_ALGORITHM_PROVIDER:-}"

Discussion:
Clusters on GCE set eviction thresholds for disk and inodes. Given that reclaiming disk and inodes is slow, we should set minimum reclaim thresholds too. Essentially, set . I assume percentages are supported for min reclaims too. Do we have system tests for min reclaim? cc
I just took a glance at the parser for eviction minimum reclaim, it doesn't look like it tries to parse percentages. can you confirm?
did percentage support, and we did not extend it to min reclaim. It's a good idea to do though. On Tuesday, September 13, 2016, Michael Taufen wrote:
Hmm.. In that case for v1.4, can we set the min reclaim to ? What values are you planning on using in Open Shift ?
This should fix this issue to avoid node condition being flip-flop, but I think it shouldn't block 1.4 release.
More than flip-flop, it will help the node recover from disk pressure condition sooner. , Dawn Chen wrote:
/cc
Spawned to add percentage support for min reclaim. I will follow up with our proposed default for nodefs later
This needs to be triaged as a release-blocker or not for 1.5
can you check if we have set default values for disk and inode based evictions in kubelet? If not, we should add them.
I believe our current default value for the --eviction-hard flag is "memory.available<100Mi", found in Our tests currently run using: "memory.available<250Mi,nodefs.available<10%,nodefs.inodesFree<5%", found in What should I change the default to? This issue is about minimum reclaim, should I look into changing those flags as well?
It doesn't appear that we have defaults for minimum reclaim, should I add minimum reclaim for memory in addition to disk and inodes?
I think GCE defaults do not apply globally, we should change what GCE does, and handle setting global defaults in 1.6.
the global defaults are expected to be based on our OSS tests. Our original plan was to roll out disk eviction by default in v1.5. This is not specific to GCE.
Can you make a call on if this is a blocker or non-blocker for 1.5 by EOD Friday please