jiebi/CodeConvo huggingface dataset:
Change:
The comment states that the , but the function . /cc
At least currently, is only used for printing, we can change the code to use . :)
+1

Discussion:
return } if !isHostNetwork { <del> teardownNetworkResult := kubecontainer.NewSyncResult(kubecontainer.TeardownNetwork, pod.UID) </del> <ins> teardownNetworkResult := kubecontainer.NewSyncResult(kubecontainer.TeardownNetwork, runningPod.ID) </ins> result.AddSyncResult(teardownNetworkResult) // Tear down network plugin with sandbox id if err := m.networkPlugin.TearDownPod(runningPod.Namespace, runningPod.Name, kubecontainer.ContainerID{ Type: m.runtimeName, ID:   sandboxID, }); err != nil { <del> message := fmt.Sprintf("Failed to teardown network for pod %q using network plugins %q: %v", format.Pod(pod), m.networkPlugin.Name(), err) </del> <ins> message := fmt.Sprintf("Failed to teardown network for pod %s_%s(%s) using network plugins %q: %v", runningPod.Name, runningPod.Namespace, runningPod.ID, m.networkPlugin.Name(), err) </ins> teardownNetworkResult.Fail(kubecontainer.ErrTeardownNetwork, message) glog.Error(message) }
Change:
I'm seeing the following failures of Kubemark in presubmit: It calls stop-kubemark without clear reason. Such failure are e.g. here:
Ref
Actually, both these failures are a different issue. The logs that are problematic are: Why we don't have kubectl there?
I don't know why - ? I haven't seen those error recently, so I guess this is fixed. OTOH I have seen a number of runs where cluster startup failed, but there's a fun thing about those failures. All of them occurred on runs on worker-22:
I found something even more interesting. Extending the log: It seems that the cluster was created around 00:30 on 2016-09-20, MTV time (this is a default Jenkins time). But doing: gives the following result: Which seems to indicate that the address was never created around that time... cc
[FLAKE-PING] This flaky-test issue would love to have more attention.

Discussion:
if gcloud compute addresses create "$1"  --project "${PROJECT}"  --region "${REGION}" -q > /dev/null; then <del> # successful operation </del> <ins> # successful operation - wait until it's visible start="$(date +%s)" while true; do now="$(date +%s)" # Timeout set to 15 minutes if [ $((now - start)) -gt 900 ]; then echo "Timeout while waiting for master IP visibility" exit 2 fi if gcloud compute addresses describe "$1" --project "${PROJECT}" --region "${REGION}" >/dev/null 2>&1; then break fi echo "Master IP not visible yet. Waiting..." sleep 5 done </ins> break fi
Change:
a service, type LoadBalancer. that and add a field with a value that the iptables rules do not appear It does seem that the GCE firewall rule is created. patch?
Is this a regression?
No. This has never been "right" as far as I can tell. , Phillip Wittrock wrote:
can this be closed now?
Nope. The root cause has not been fixed yet.

Discussion:
allErrs = append(allErrs, ValidateImmutableField(service.Spec.ClusterIP, oldService.Spec.ClusterIP, field.NewPath("spec", "clusterIP"))...) } <ins> // TODO(freehan): allow user to update loadbalancerSourceRanges allErrs = append(allErrs, ValidateImmutableField(service.Spec.LoadBalancerSourceRanges, oldService.Spec.LoadBalancerSourceRanges, field.NewPath("spec", "loadBalancerSourceRanges"))...) </ins> allErrs = append(allErrs, ValidateService(service)...) return allErrs }

}, numErrs: 0, }, <ins> { name: "add loadBalancerSourceRanges", tweakSvc: func(oldSvc, newSvc *api.Service) { oldSvc.Spec.Type = api.ServiceTypeLoadBalancer newSvc.Spec.Type = api.ServiceTypeLoadBalancer newSvc.Spec.LoadBalancerSourceRanges = []string{"10.0.0.0/8"} }, numErrs: 1, }, { name: "update loadBalancerSourceRanges", tweakSvc: func(oldSvc, newSvc *api.Service) { oldSvc.Spec.Type = api.ServiceTypeLoadBalancer oldSvc.Spec.LoadBalancerSourceRanges = []string{"10.0.0.0/8"} newSvc.Spec.Type = api.ServiceTypeLoadBalancer newSvc.Spec.LoadBalancerSourceRanges = []string{"10.180.0.0/16"} }, numErrs: 1, }, </ins> } for _, tc := range testCases {
Change:
Create the following svc: It should fail.
I will try to take a shot at it.
Awesome! Make sure to handle updates in all directions. Historically it is the thing we forget. , Maciej Kwiek wrote:
do you have any examples of this behaviour breaking something? It would help with justifying my PR in code review process :). I know it makes sense to fix this issue, but an example would be nice.
I had a user report thatthey didn't know what was happening - the API should have rejected it with a message that you can't have headless services with load balancers. , Maciej Kwiek wrote:
please what are really use cases where we can use k8s headless service, DB, Proxies .. ?

Discussion:
allErrs = append(allErrs, field.Invalid(portPath, port.Port, "may not expose port 10250 externally since it is used by kubelet")) } } <ins> if service.Spec.ClusterIP == "None" { allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "may not be set to 'None' for LoadBalancer services")) } </ins> case api.ServiceTypeExternalName: if service.Spec.ClusterIP != "" { allErrs = append(allErrs, field.Invalid(specPath.Child("clusterIP"), service.Spec.ClusterIP, "must be empty for ExternalName services"))

}, numErrs: 1, }, <ins> { name: "LoadBalancer type cannot have None ClusterIP", tweakSvc: func(s *api.Service) { s.Spec.ClusterIP = "None" s.Spec.Type = api.ServiceTypeLoadBalancer }, numErrs: 1, }, </ins> } for _, tc := range testCases {

}, numErrs: 1, }, <ins> { name: "LoadBalancer type cannot have None ClusterIP", tweakSvc: func(oldSvc, newSvc *api.Service) { newSvc.Spec.ClusterIP = "None" newSvc.Spec.Type = api.ServiceTypeLoadBalancer }, numErrs: 1, }, </ins> } for _, tc := range testCases {
Change:
Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT Kubernetes version (use ): master Environment: OS: MacOS Kernel (e.g. ): Darwin Klauss-MacBook- 15.6.0 Darwin Kernel Version 15.6.0: Mon Aug 29 20:21:34 PDT 2016; root:xnu-3248.60.11~1/RELEASEX8664 x86_64 What happened: Build failed: What you expected to happen: Successfully built How to reproduce it (as minimally and precisely as possible): Anything else do we need to know: N/A
cc , any suggestion?
attempted to fix this error in a recent PR.
I'll take a look. node_e2e should not be built on mac. It's weird.
I checked our cross build, everything is good: Are you sure you are using head? Have your code included
similar issue after , refer to the following output. Is the used to remove node_e2e on Mac? I'll check it and try to fix this issue :).
by running , it will just build everything on the current platform. That's why e2e_node and even other kubelet servers are built on Mac with . The problem is that whether guarantee building on Mac? From , it seems that K8s could build on Mac before. However, broke that.
, are you still working on this ? If not, I'd like to contribute to this one :). Here's what I found recently: The latest build command is: But when I checked , the is not included in it: I'm going to find what happened when build ; it seems is not included on Mac, which triggers this build error. If any comments/suggestion, please let me know.
/ , there's the root cause: the is only built on linux because of build flag (), that makes can not find related functions on Mac.
Yeah, for now we can add in to solve the problem. :) Feel free to fix it if you're interested. :)
, thanks very much; is better than a new file. The PR was updated accordingly ().

Discussion:
<ins> // +build linux </ins> /* Copyright 2016 The Kubernetes Authors.
Change:
Due to a bug in the disruption e2e test, we really only run one test case 5 times instead of all 5 test cases. This will be fixed when is merged.

Discussion:
shouldDeny:     true, }, } <del> for _, c := range evictionCases { </del> <ins> for i := range evictionCases { c := evictionCases[i] </ins> expectation := "should allow an eviction" if c.shouldDeny { expectation = "should not allow an eviction"
Change:
ExternalID/InstanceID do not return 'cloudprovider.InstanceNotFound' error when the VM is not found. This can occur when a node VM is deleted entirely. In this case InstanceID method would throw an nil pointer exception here: since returned error here: is not being handled, vm would be nil. vm object is then dereferenced in getVirtualMachineManagedObjectReference func. In ExternalID method, the error is being handled by just passing it up. Node controller then prints out error and continues: e.g. ExternalID/InstanceID should handle the 'nod found' error being returned from vCenter and return 'cloudprovider.InstanceNotFound'.

Discussion:
vm, err := getVirtualMachineByName(i.cfg, ctx, c, name) if err != nil { <ins> if _, ok := err.(*find.NotFoundError); ok { return "", cloudprovider.InstanceNotFound } </ins> return "", err }

defer c.Logout(ctx) vm, err := getVirtualMachineByName(i.cfg, ctx, c, name) <ins> if err != nil { if _, ok := err.(*find.NotFoundError); ok { return "", cloudprovider.InstanceNotFound } return "", err } </ins> var mvm mo.VirtualMachine err = getVirtualMachineManagedObjectReference(ctx, c, vm, "summary", &mvm)

"testing" "golang.org/x/net/context" <ins> "k8s.io/kubernetes/pkg/cloudprovider" </ins> "k8s.io/kubernetes/pkg/util/rand" )

} t.Logf("Found ExternalID(%s) = %sn", srvs[0], externalId) <ins> nonExistingVM := rand.String(15) externalId, err = i.ExternalID(nonExistingVM) if err == cloudprovider.InstanceNotFound { t.Logf("VM %s was not found as expectedn", nonExistingVM) } else if err == nil { t.Fatalf("Instances.ExternalID did not fail as expected, VM %s was found", nonExistingVM) } else { t.Fatalf("Instances.ExternalID did not fail as expected, err: %v", err) } </ins> instanceId, err := i.InstanceID(srvs[0]) if err != nil { t.Fatalf("Instances.InstanceID(%s) failed: %s", srvs[0], err) } t.Logf("Found InstanceID(%s) = %sn", srvs[0], instanceId) <ins> instanceId, err = i.InstanceID(nonExistingVM) if err == cloudprovider.InstanceNotFound { t.Logf("VM %s was not found as expectedn", nonExistingVM) } else if err == nil { t.Fatalf("Instances.InstanceID did not fail as expected, VM %s was found", nonExistingVM) } else { t.Fatalf("Instances.InstanceID did not fail as expected, err: %v", err) } </ins> addrs, err := i.NodeAddresses(srvs[0]) if err != nil { t.Fatalf("Instances.NodeAddresses(%s) failed: %s", srvs[0], err)
Change:
GCI log rotation configuration missed "" file. We should just configure log rotation to rotate all "*.log" files in /var/log.
I cherrypicked your change last night. Please do what you need to do to confirm this is resolved.
Thank you, will do.
Verified. Closing issue.

Discussion:
} EOF <del> # Configuration for k8s services that redirect logs to /var/log/<service>.log # files. Whenever logrotate is ran, this config will: </del> <ins> # Configure log rotation for all logs in /var/log, which is where k8s services # are configured to write their log files. Whenever logrotate is ran, this # config will: </ins> # * rotate the log file if its size is > 100Mb OR if one day has elapsed # * save rotated logs into a gzipped timestamped backup # * log file timestamp (controlled by 'dateformat') includes seconds too. This

#   (otherwise it skips rotation if 'maxsize' is reached multiple times in a #   day). # * keep only 5 old (rotated) logs, and will discard older logs. <del> local logrotate_files=( "kube-scheduler" "kube-proxy" "kube-apiserver" "kube-controller-manager" "kube-addons" ) for file in "${logrotate_files[@]}" ; do cat > /etc/logrotate.d/${file} <<EOF /var/log/${file}.log { </del> <ins> cat > /etc/logrotate.d/allvarlogs <<EOF /var/log/*.log { </ins> rotate 5 copytruncate missingok

create 0644 root root } EOF <del> done </del> } # Finds the master PD device; returns it in MASTER_PD_DEVICE
Change:
0 picks up a godep update with an int overflow fix to the upstream workqueue package. This bug tracks cherrypicking the version bump into 1.4.1.
closed via

Discussion:
apiVersion: v1 kind: Pod metadata: <del> name: l7-lb-controller-v0.7.1 </del> <ins> name: l7-lb-controller-v0.8.0 </ins> namespace: kube-system labels: k8s-app: glbc <del> version: v0.7.1 </del> <ins> version: v0.8.0 </ins> kubernetes.io/cluster-service: "true" kubernetes.io/name: "GLBC" spec: terminationGracePeriodSeconds: 600 hostNetwork: true containers: <del> - image: gcr.io/google_containers/glbc:0.7.1 </del> <ins> - image: gcr.io/google_containers/glbc:0.8.0 </ins> livenessProbe: httpGet: path: /healthz
Change:
In , for It("should ensure that critical pod is scheduled in case there is no resources available"), kube-dns is used as the critical pod target and being scaled out and in. However, we plan to enable the dns horizontal autoscaling feature in the near future, such as this . If this feature is turned on, the corresponding autoscaler will fight with this rescheduler e2e and maintain the desired number of replicas. Hence this test will be very likely to fail. So probably we should use another critical pod here, or either create a new critical pod that does not exist before in order to protect the ongoing functionalities.
thanks for letting me know. What is the ETA for enabling horizontal autoscaler for DNS?
I believe it would be enabled no later than the 1.5 release.
Sorry to bother, is there an ETA for this? FYI, as merged, we will upgrade the addon-manager to support rolling update for once is ready to go. After that I will start working on enabling horizontal autoscaler for . These will happen before 1.5 code freeze.
Sorry for the delay. fixes this
Thanks for helping!

Discussion:
defer framework.DeleteRCAndPods(f.ClientSet, ns, "reserve-all-cpu") framework.ExpectNoError(err) <del> By("creating a new instance of DNS and waiting for DNS to be scheduled") label := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": "kube-dns"})) </del> <ins> By("creating a new instance of Dashboard and waiting for Dashboard to be scheduled") label := labels.SelectorFromSet(labels.Set(map[string]string{"k8s-app": "kubernetes-dashboard"})) </ins> listOpts := api.ListOptions{LabelSelector: label} rcs, err := f.ClientSet.Core().ReplicationControllers(api.NamespaceSystem).List(listOpts) framework.ExpectNoError(err)
Change:
GCI Test Failing: (kubernetes-gci-gce-alpha-features-release-1.4) ([] PetSet [Slow] [Feature:PetSet] [] Deploy clustered applications [Slow] [Feature:PetSet] should creating a working mysql cluster [Feature:PetSet]) https://k8s-
This one, and appear to be failing because of the same reasons. The files being written by the init containers don't have the right permissions perhaps? This is what I observed so far. Looks like it's mounted with noexec for some reason. cc
nice debug
Random tip, came across this looking for another bug. GCI broken emptydir because kubelet's root-dir is noexec. Petset is just a victim:
Seems to be a dup of I have posted a fix. , Prashanth B wrote:

Discussion:
fi } <ins> # Setup working directory for kubelet. function setup-kubelet-dir { echo "Making /var/lib/kubelet executable for kubelet" mount --bind /var/lib/kubelet /var/lib/kubelet/ mount -B -o remount,exec,suid,dev /var/lib/kubelet } </ins> function reset-motd { # kubelet is installed both on the master and nodes, and the version is easy to parse (unlike kubectl) local -r version="$("${KUBE_HOME}"/bin/kubelet --version=true | cut -f2 -d " ")"

config-ip-firewall create-dirs <ins> setup-kubelet-dir </ins> ensure-local-ssds setup-logrotate if [[ "${KUBERNETES_MASTER:-}" == "true" ]]; then
Change:
GCI Test Failing: (kubernetes-e2e-gci-gce-reboot-release-1.4) ([] Reboot [Disruptive] [Feature:Reboot] each node by switching off the network interface and ensure they function upon switch on) https://k8s-
Hmm. it looks like Kubelet is not detecting that network interfaces are down and updating its NodeStatus.
and commands are not in GCI. Is there any other equivalent command that we can use across GCI and other distros
Hmm... This test is testing "switching off network interface" specifically. I just try it with and . It should have the same effect.
I manually tested it with the following command on a GCI node. I observed the node get marked to NotReady and marked back to Ready. It should be okay. Just the test needs to be fixed.
Sweet! Thanks Do you want to continue owning this issue to have the test fixed?

Discussion:
It("each node by switching off the network interface and ensure they function upon switch on", func() { // switch the network interface off for a while to simulate a network outage // We sleep 10 seconds to give some time for ssh command to cleanly finish before network is down. <del> testReboot(f.Client, "nohup sh -c 'sleep 10 && sudo ifdown eth0 && sleep 120 && sudo ifup eth0' >/dev/null 2>&1 &") </del> <ins> testReboot(f.Client, "nohup sh -c 'sleep 10 && sudo ip link set eth0 down && sleep 120 && sudo ip link set eth0 up' >/dev/null 2>&1 &") </ins> }) It("each node by dropping all inbound packets for a while and ensure they function afterwards", func() {
Change:
See for full dumps. The line number of corresponds to:
From a quick look, perhaps the namespace object returned from retryOnConflictError() just above no longer has a DeletionTimestamp and thus "*namespace.DeletionTimestamp" triggers the panic?
Thanks for the report, I will investigate.

Discussion:
type updateNamespaceFunc func(kubeClient clientset.Interface, namespace *api.Namespace) (*api.Namespace, error) // retryOnConflictError retries the specified fn if there was a conflict error <ins> // it will return an error if the UID for an object changes across retry operations. </ins> // TODO RetryOnConflict should be a generic concept in client code func retryOnConflictError(kubeClient clientset.Interface, namespace *api.Namespace, fn updateNamespaceFunc) (result *api.Namespace, err error) { latestNamespace := namespace

if !errors.IsConflict(err) { return nil, err } <ins> prevNamespace := latestNamespace </ins> latestNamespace, err = kubeClient.Core().Namespaces().Get(latestNamespace.Name) if err != nil { return nil, err } <ins> if prevNamespace.UID != latestNamespace.UID { return nil, fmt.Errorf("namespace uid has changed across retries") } </ins> } }

return err } <ins> // the latest view of the namespace asserts that namespace is no longer deleting.. if namespace.DeletionTimestamp.IsZero() { return nil } </ins> // if the namespace is already finalized, delete it if finalized(namespace) { <del> err = kubeClient.Core().Namespaces().Delete(namespace.Name, nil) </del> <ins> var opts *api.DeleteOptions uid := namespace.UID if len(uid) > 0 { opts = &api.DeleteOptions{Preconditions: &api.Preconditions{UID: &uid}} } err = kubeClient.Core().Namespaces().Delete(namespace.Name, opts) </ins> if err != nil && !errors.IsNotFound(err) { return err }
Change:
We have a new vanity url, , which redirects to the GCS release bucket - e.g. Right now, the https endpoint doesn't work, since isn't in the list of domains on the certificate. Once it works, we should switch all references over to the nicer vanity URL. x-ref
So what it required to make this issues actionable? Where to add this for the certificate?
the issue tracking that is
This needs to be triaged as a release-blocker or not for 1.5
not a release blocker.
Is it appropriate to move this to the next milestone or clear the 1.5 milestone? (and remove the non-release-blocker tag as well)
can this be closed?
I forgot to get to this in 1.6, but it'd still be good to do.
do you want this in v1.7? is there a sig to own this?
doesn't need to block 1.7, no.
There are no sig labels on this issue. Please by:<br(1) mentioning a sig: <br(2) specifying the label manually: <br<brNote: method (1) will trigger a notification to the team. You can find the team list .
/sig release

Discussion:
ETCD_DOWNLOAD_URL= "https://github.com/coreos/etcd/releases/download/v${ETCD_VERSION}/etcd-v${ETCD_VERSION}-linux-amd64.tar.gz" <del> # TODO(#33726): switch to dl.k8s.io </del> K8S_CLIENT_DOWNLOAD_URL= <del> "https://storage.googleapis.com/kubernetes-release/release/v${K8S_VERSION}/kubernetes-client-linux-amd64.tar.gz" </del> <ins> "https://dl.k8s.io/v${K8S_VERSION}/kubernetes-client-linux-amd64.tar.gz" </ins> K8S_SERVER_DOWNLOAD_URL= <del> "https://storage.googleapis.com/kubernetes-release/release/v${K8S_VERSION}/kubernetes-server-linux-amd64.tar.gz" </del> <ins> "https://dl.k8s.io/v${K8S_VERSION}/kubernetes-server-linux-amd64.tar.gz" </ins>
Change:
We have a new vanity url, , which redirects to the GCS release bucket - e.g. Right now, the https endpoint doesn't work, since isn't in the list of domains on the certificate. Once it works, we should switch all references over to the nicer vanity URL. x-ref
So what it required to make this issues actionable? Where to add this for the certificate?
the issue tracking that is
This needs to be triaged as a release-blocker or not for 1.5
not a release blocker.
Is it appropriate to move this to the next milestone or clear the 1.5 milestone? (and remove the non-release-blocker tag as well)
can this be closed?
I forgot to get to this in 1.6, but it'd still be good to do.
do you want this in v1.7? is there a sig to own this?
doesn't need to block 1.7, no.
There are no sig labels on this issue. Please by:<br(1) mentioning a sig: <br(2) specifying the label manually: <br<brNote: method (1) will trigger a notification to the team. You can find the team list .
/sig release

Discussion:
- mkdir -p /home/kubernetes/containerized_mounter/rootfs - mount --bind /home/kubernetes/containerized_mounter/ /home/kubernetes/containerized_mounter/ - mount -o remount, exec /home/kubernetes/containerized_mounter/ <del> - wget https://storage.googleapis.com/kubernetes-release/gci-mounter/mounter.tar -O /tmp/mounter.tar </del> <ins> - wget https://dl.k8s.io/gci-mounter/mounter.tar -O /tmp/mounter.tar </ins> - tar xvf /tmp/mounter.tar -C /home/kubernetes/containerized_mounter/rootfs - mkdir -p /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet - mount --rbind /var/lib/kubelet /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet

cniArch          = "amd64" cniDirectory     = "cni/bin" // The CNI tarball places binaries under directory under "cni/bin". cniConfDirectory = "cni/net.d" <del> cniURL           = "https://storage.googleapis.com/kubernetes-release/network-plugins/cni-plugins-" + cniArch + "-" + cniVersion + ".tgz" </del> <ins> cniURL           = "https://dl.k8s.io/network-plugins/cni-plugins-" + cniArch + "-" + cniVersion + ".tgz" </ins> ) const cniConfig = `{