jiebi/CodeConvo huggingface dataset:
Change:
Kubernetes version (use ): master Environment: Cloud provider or hardware configuration: GCE OS (e.g. from /etc/os-release): debian, gci Install tools: cluster/kube- What happened: Creating a cluster with GCI uses the directory for CNI plugins. Creating a cluster with debian uses the directory for CNI plugins, which is read-only on GCI. This makes it impossible to create a DaemonSet which works for both image types. What you expected to happen: The CNI installation directory should be the same across all image types. In this case, it should be . CC
/sig network
Some related work here:
Ok, I approved this one for 1.7 since It helps clean up our CVM based tests. The cleanup code is also self-contained, shouldn't cause any issues on other cloud providers. But will double check through the pr.

Discussion:
<del> /opt/cni: </del> <ins> /home/kubernetes: </ins> file.directory: - user: root - group: root

archive: - extracted - user: root <del> - name: /opt/cni </del> <ins> - name: /home/kubernetes </ins> - makedirs: True - source: https://storage.googleapis.com/kubernetes-release/network-plugins/cni-0799f5732f2a11b329d9e3d51b9c8f2e3759f2ff.tar.gz - tar_options: v - source_hash: md5=afbb526e7d976f98353ac96f73043031 - archive_format: tar <del> - if_missing: /opt/cni/bin </del> <ins> - if_missing: /home/kubernetes/bin </ins> {% if grains['cloud'] is defined and grains.cloud in [ 'vagrant' ]  %} # Install local CNI network plugins in a Vagrant environment cmd-local-cni-plugins: cmd.run: - name: | <del> cp -v /vagrant/cluster/network-plugins/cni/bin/* /opt/cni/bin/. chmod +x /opt/cni/bin/* </del> <ins> cp -v /vagrant/cluster/network-plugins/cni/bin/* /home/kubernetes/bin/. chmod +x /home/kubernetes/bin/* </ins> cmd-local-cni-config: cmd.run: - name: |

{% if pillar.get('network_provider', '').lower() == 'opencontrail' %} {% set network_plugin = "--network-plugin=opencontrail" %} {% elif pillar.get('network_provider', '').lower() == 'cni' %} <del> {% set network_plugin = "--network-plugin=cni --cni-bin-dir=/etc/cni/net.d/" %} {%elif pillar.get('network_policy_provider', '').lower() == 'calico' and grains['roles'][0] != 'kubernetes-master' -%} </del> <ins> {% set network_plugin = "--network-plugin=cni --cni-conf-dir=/etc/cni/net.d/ --cni-bin-dir=/home/kubernetes/bin/" %} {% elif pillar.get('network_policy_provider', '').lower() == 'calico' and grains['roles'][0] != 'kubernetes-master' %} </ins> {% set network_plugin = "--network-plugin=cni --cni-conf-dir=/etc/cni/net.d/ --cni-bin-dir=/home/kubernetes/bin/" %} {% elif pillar.get('network_provider', '').lower() == 'kubenet' %} <del> {% set network_plugin = "--network-plugin=kubenet" -%} </del> <ins> {% set network_plugin = "--network-plugin=kubenet --network-plugin-dir=/home/kubernetes/bin/" -%} </ins> {% endif -%} # Don't pipe the --hairpin-mode flag by default. This allows the kubelet to pick
Change:
0 Release Blocker:
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 and label list

Discussion:
apiVersion: v1 kind: Pod metadata: <del> name: l7-lb-controller-v0.9.4 </del> <ins> name: l7-lb-controller-v0.9.5 </ins> namespace: kube-system labels: k8s-app: glbc <del> version: v0.9.4 </del> <ins> version: v0.9.5 </ins> kubernetes.io/cluster-service: "true" kubernetes.io/name: "GLBC" spec: terminationGracePeriodSeconds: 600 hostNetwork: true containers: <del> - image: gcr.io/google_containers/glbc:0.9.4 </del> <ins> - image: gcr.io/google_containers/glbc:0.9.5 </ins> livenessProbe: httpGet: path: /healthz
Change:
For FlexVolume, there is a kubelet flag, --volume-plugin-dir, that specifies the path which FlexVolume plugin uses to find the custom volume driver. Currently it's not possible to set this flag through cluster/kube-
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 and label list
/sig storage

Discussion:
if [[ -n "${NON_MASQUERADE_CIDR:-}" ]]; then flags+=" --non-masquerade-cidr=${NON_MASQUERADE_CIDR}" fi <ins> # FlexVolume plugin if [[ -n "${VOLUME_PLUGIN_DIR:-}" ]]; then flags+=" --volume-plugin-dir=${VOLUME_PLUGIN_DIR}" fi </ins> if [[ "${ENABLE_MANIFEST_URL:-}" == "true" ]]; then flags+=" --manifest-url=${MANIFEST_URL}" flags+=" --manifest-url-header=${MANIFEST_URL_HEADER}"
Change:
Is this a BUG REPORT or FEATURE REQUEST? (choose one): Bug Kubernetes version (use ): master branch What happened: Here's the output when we print as string. What you expected to happen: print How to reproduce it (as minimally and precisely as possible): /assign
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 and label list
/sig api-machinery
/king bug
Here's the output I get with with a test PVC: and :
Ditto, not seeing a repro against master head:
please try :).
Ah, brainfart, I thought this was complaining about . Yes, indeed is returning: This should be fixed for 1.7.
Will let add approved-for-milestone
I'm assuming you're working on this?
, yes, the PR is here, waiting for 1.7 milestone to merge :).
, thanks for your verification :). I updated title to include "statefulset".

Discussion:
printLabelsMultilineWithIndent(w, "  ", "Labels", "t", pvc.Labels, sets.NewString()) printLabelsMultilineWithIndent(w, "  ", "Annotations", "t", pvc.Annotations, sets.NewString()) if capacity, ok := pvc.Spec.Resources.Requests[api.ResourceStorage]; ok { <del> w.Write(LEVEL_1, "Capacity:t%sn", capacity) </del> <ins> w.Write(LEVEL_1, "Capacity:t%sn", capacity.String()) </ins> } else { w.Write(LEVEL_1, "Capacity:t%sn", "<default>") }
Change:
https://k8s-
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 and label list
Most likely caused by the fluentd update /cc
The gce-gpu tests are failing for the same reason.
Ditto for pull-federation and federation-ci. pull-federation will need a cluster rebuild once the fix is incorporated upstream. /cc csbell
well that's exciting. cc
to revert fluentd to 2.0.5.
I don't understand what's special about these clusters, though. The PR passed presubmit tests a number of times.
none of the presubmit tests run COS images. I think that's the problem. From the error message, it seems like copying libsystemd is not enough, and more libraries need to be copied (e.g., libcap). Will need to build a new fluentd image to fix this.
yeah, I think you're right. I started a cluster myself and the pod is failing on the master (COS) but not on the nodes (CVM). curious that this broke between fluentd 2.0.5 and 2.0.6, which has no code changes and only updates the base image... I guess something materially changed in the base image.

Discussion:
hostNetwork: true containers: - name: fluentd-gcp <del> image: gcr.io/google-containers/fluentd-gcp:2.0.6 </del> <ins> image: gcr.io/google-containers/fluentd-gcp:2.0.5 </ins> # If fluentd consumes its own logs, the following situation may happen: # fluentd fails to send a chunk to the server => writes it to the log => # tries to send this message to the server => fails to send a chunk and so on.
Change:
is not picking the cmd test junit output due to file naming issue. The file name should match regex /assign
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 and label list
/sig testing

Discussion:
" ## testsuite block <del> if [[ -e "$juDIR/junit-$suite.xml" ]]; then </del> <ins> if [[ -e "$juDIR/junit_$suite.xml" ]]; then </ins> # file exists. first update the failures count <del> failCount=`sed -n "s/.*testsuite.*failures="([0-9]*)".*/1/p" "$juDIR/junit-$suite.xml"` </del> <ins> failCount=`sed -n "s/.*testsuite.*failures="([0-9]*)".*/1/p" "$juDIR/junit_$suite.xml"` </ins> errors=$(($failCount+$errors)) <del> sed -i "0,/failures="$failCount"/ s/failures="$failCount"/failures="$errors"/" "$juDIR/junit-$suite.xml" sed -i "0,/errors="$failCount"/ s/errors="$failCount"/errors="$errors"/" "$juDIR/junit-$suite.xml" </del> <ins> sed -i "0,/failures="$failCount"/ s/failures="$failCount"/failures="$errors"/" "$juDIR/junit_$suite.xml" sed -i "0,/errors="$failCount"/ s/errors="$failCount"/errors="$errors"/" "$juDIR/junit_$suite.xml" </ins> # file exists. Need to append to it. If we remove the testsuite end tag, we can just add it in after. <del> sed -i "s^</testsuite>^^g" $juDIR/junit-$suite.xml ## remove testSuite so we can add it later sed -i "s^</testsuites>^^g" $juDIR/junit-$suite.xml cat <<EOF >> "$juDIR/junit-$suite.xml" </del> <ins> sed -i "s^</testsuite>^^g" $juDIR/junit_$suite.xml ## remove testSuite so we can add it later sed -i "s^</testsuites>^^g" $juDIR/junit_$suite.xml cat <<EOF >> "$juDIR/junit_$suite.xml" </ins> $content </testsuite> </testsuites>

else # no file exists. Adding a new file <del> cat <<EOF > "$juDIR/junit-$suite.xml" </del> <ins> cat <<EOF > "$juDIR/junit_$suite.xml" </ins> <?xml version="1.0" encoding="UTF-8"?> <testsuites> <testsuite failures="$errors" assertions="$assertions" name="$suite" tests="1" errors="$errors" time="$total">
Change:
Example: https://k8s- cc - Maybe related to /sig network /area platform/gke /kind bug /priority failing-test
/assign
/assign
I guess DaemonSet's behave differently the deployments wrt to scheduling. So in the DaemonSet case we return no nodes to run on since no labels match. In the deployment case (Typha) we want to run at least one thing and cannot so it sits in pending. Maybe the default for typha should be replicas 0? And then we can set the replicas at runtime?
Actually maybe leave it as is for now but in the e2e test maybe we just set it to 0?
Discussed with I think the right fix is . We should return typhacount=0 if NETWORKPOLICY_PROVIDER is not set to .
The tests are still failing with the same error: https://k8s-
I think the problem is here: if [[ "${NETWORKPOLICYPROVIDER:-}" == "calico" ]]; then setup-addon-manifests "addons" "calico-policy-controller" ..... sed -i -e "s I think we need to set that count to CALICOTYPHAREPLICAS_ regardless of provider
/reopen
ping ...
working on the fix that suggested in PR Tests are currently failing but haven't gotten to the bottom of it yet.
This is fixed now.

Discussion:
if [[ "${NUM_NODES}" -gt "500" ]]; then typha_count=5 fi <ins> if [[ "${NETWORK_POLICY_PROVIDER:-}" != "calico" ]]; then # We're not configured to use Calico, so don't start any Typhas. typha_count=0 fi </ins> echo "${typha_count}" }
Change:
Need to follow-up on and i assigned it to you because turning off settings/v1alpha1 requires some changes in the tests.
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 and label list
/sig api-machinery
/assign
did you mean I should add a priority label?
[MILESTONENOTIFIER] Milestone Labels Complete Issue label settings: sig/api-machinery: Issue will be escalated to these SIGs if needed. priority/important-soon: Escalate to the issue owners and SIG owner; move out of milestone after several unsuccessful escalation attempts. kind/bug: Fixes a bug discovered during the current release. <detailsAdditional instructions available <a href=""here</a</details

Discussion:
"//vendor/k8s.io/api/networking/v1:go_default_library", "//vendor/k8s.io/api/policy/v1beta1:go_default_library", "//vendor/k8s.io/api/rbac/v1:go_default_library", <del> "//vendor/k8s.io/api/rbac/v1alpha1:go_default_library", </del> "//vendor/k8s.io/api/rbac/v1beta1:go_default_library", <del> "//vendor/k8s.io/api/scheduling/v1alpha1:go_default_library", "//vendor/k8s.io/api/settings/v1alpha1:go_default_library", </del> "//vendor/k8s.io/api/storage/v1:go_default_library", "//vendor/k8s.io/api/storage/v1beta1:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/errors:go_default_library",

networkingapiv1 "k8s.io/api/networking/v1" policyapiv1beta1 "k8s.io/api/policy/v1beta1" rbacv1 "k8s.io/api/rbac/v1" <del> rbacv1alpha1 "k8s.io/api/rbac/v1alpha1" </del> rbacv1beta1 "k8s.io/api/rbac/v1beta1" <del> schedulingapiv1alpha1 "k8s.io/api/scheduling/v1alpha1" settingv1alpha1 "k8s.io/api/settings/v1alpha1" </del> storageapiv1 "k8s.io/api/storage/v1" storageapiv1beta1 "k8s.io/api/storage/v1beta1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

policyapiv1beta1.SchemeGroupVersion, rbacv1.SchemeGroupVersion, rbacv1beta1.SchemeGroupVersion, <del> // Don't copy this pattern. We enable rbac/v1alpha1 and settings/v1laph1 // by default only because they were enabled in previous releases. // See https://github.com/kubernetes/kubernetes/pull/47690. // TODO: disable rbac/v1alpha1 and settings/v1alpha1 by default in 1.8 rbacv1alpha1.SchemeGroupVersion, settingv1alpha1.SchemeGroupVersion, schedulingapiv1alpha1.SchemeGroupVersion, </del> storageapiv1.SchemeGroupVersion, storageapiv1beta1.SchemeGroupVersion, certificatesapiv1beta1.SchemeGroupVersion,

. "github.com/onsi/gomega" ) <del> var _ = SIGDescribe("PodPreset", func() { </del> <ins> var _ = SIGDescribe("[Feature:PodPreset] PodPreset", func() { </ins> f := framework.NewDefaultFramework("podpreset") var podClient *framework.PodClient
Change:
https://k8s- It's quite flaky.
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 and label list
/assign
/sig networking
There are two failures in gci-gce-slow, so it's not specific to gke. https://k8s- Also in gce-slow: https://k8s-
/sig network
This is strange, seems like this test is trying to reach the test-netexec pod through servicePublicIP:serivcePort, but the request hit the gce default backend instead. cc
There is another type of failure: Seems to be the port collision between test service and fluentd daemonset, which changed to use few days ago ().
cc
Checked the kube-proxy logs and found this is not the case. Port was not allocated (although that could happen in theory) to any service during test:
This turned out to be an interesting corner case. It happens at the beginning after we set up the GCE network LoadBalancer for OnlyLocal service --- when the LB still forwarding traffic onto nodes that don't have endpoints on. For more context, when network LB forward traffic to nodes, packet arrives node with below src:dst: If no endpoints are on the node, and there happens to have a pod using hostPort with the same port number, packet will be DNAT to that pod IP instead. These are observations and I haven't traced down to the exact iptables entries. I'm changing service port in test to avoid collision for now. cc

Discussion:
jig := framework.NewServiceTestJig(cs, serviceName) nodes := jig.GetNodes(framework.MaxNodesForEndpointsTests) <del> svc := jig.CreateOnlyLocalLoadBalancerService(namespace, serviceName, loadBalancerCreateTimeout, false, nil) </del> <ins> svc := jig.CreateOnlyLocalLoadBalancerService(namespace, serviceName, loadBalancerCreateTimeout, false, func(svc *v1.Service) { // Change service port to avoid collision with opened hostPorts // in other tests that run in parallel. if len(svc.Spec.Ports) != 0 { svc.Spec.Ports[0].TargetPort = intstr.FromInt(int(svc.Spec.Ports[0].Port)) svc.Spec.Ports[0].Port = 8081 } }) </ins> serviceLBNames = append(serviceLBNames, cloudprovider.GetLoadBalancerName(svc)) defer func() { jig.ChangeServiceType(svc.Namespace, svc.Name, v1.ServiceTypeClusterIP, loadBalancerCreateTimeout)
Change:
As the title said, we need update touse server side reaper. xref:
/sig apps
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 and label list
/assign

Discussion:
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/util/wait" clientset "k8s.io/client-go/kubernetes" <del> extensionsinternal "k8s.io/kubernetes/pkg/apis/extensions" </del> "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" deploymentutil "k8s.io/kubernetes/pkg/controller/deployment/util" <del> "k8s.io/kubernetes/pkg/kubectl" </del> testutils "k8s.io/kubernetes/test/utils" )

// Delete a ReplicaSet and all pods it spawned func DeleteReplicaSet(clientset clientset.Interface, internalClientset internalclientset.Interface, ns, name string) error { By(fmt.Sprintf("deleting ReplicaSet %s in namespace %s", name, ns)) <del> rc, err := clientset.Extensions().ReplicaSets(ns).Get(name, metav1.GetOptions{}) if err != nil { if apierrs.IsNotFound(err) { Logf("ReplicaSet %s was already deleted: %v", name, err) return nil } return err } reaper, err := kubectl.ReaperFor(extensionsinternal.Kind("ReplicaSet"), internalClientset) </del> <ins> rs, err := clientset.Extensions().ReplicaSets(ns).Get(name, metav1.GetOptions{}) </ins> if err != nil { if apierrs.IsNotFound(err) { Logf("ReplicaSet %s was already deleted: %v", name, err)

return err } startTime := time.Now() <del> err = reaper.Stop(ns, name, 0, nil) </del> <ins> err = clientset.ExtensionsV1beta1().ReplicaSets(ns).Delete(name, &metav1.DeleteOptions{}) </ins> if apierrs.IsNotFound(err) { Logf("ReplicaSet %s was already deleted: %v", name, err) return nil

deleteRSTime := time.Now().Sub(startTime) Logf("Deleting RS %s took: %v", name, deleteRSTime) if err == nil { <del> err = waitForReplicaSetPodsGone(clientset, rc) </del> <ins> err = waitForReplicaSetPodsGone(clientset, rs) </ins> } terminatePodTime := time.Now().Sub(startTime) - deleteRSTime Logf("Terminating ReplicaSet %s pods took: %v", name, terminatePodTime)
Change:
The API server converts objects to internal versions for processing by admission plugins and rest handlers. RawExtension fields are converted correctly during create requests, but are left in external versions when handling update requests. This means that admission plugins and rest handlers expecting internal versions will fail

Discussion:
defaultGVK := scope.Kind original := r.New() trace.Step("About to convert to expected version") <del> obj, gvk, err := scope.Serializer.DecoderToVersion(s.Serializer, defaultGVK.GroupVersion()).Decode(body, &defaultGVK, original) </del> <ins> decoder := scope.Serializer.DecoderToVersion(s.Serializer, schema.GroupVersion{Group: defaultGVK.Group, Version: runtime.APIVersionInternal}) obj, gvk, err := decoder.Decode(body, &defaultGVK, original) </ins> if err != nil { err = transformDecodeError(typer, err, original, gvk, body) scope.err(err, w, req)
Change:
This causes one component on master to fail in our standard test clusters. Usually it's NPD: cc
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 and label list
/sig cluster-lifecycle

Discussion:
limits: memory: 200Mi requests: <del> cpu: 100m </del> <ins> cpu: 90m </ins> memory: 200Mi volumeMounts: - name: varlog

limits: memory: 300Mi requests: <del> cpu: 100m </del> <ins> cpu: 90m </ins> memory: 200Mi volumeMounts: - name: varlog
Change:
Reported by in Filing a bug for easy tracking. After , now prints all flags and the version. This is pretty unconventional and should probably be fixed. /cc
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 and label list
/sig cli
/cc for approval.
cc/ cc/
Is it causing a problem? It does help (a lot) for debugging both in production and e2e test failures.
Oh, wait. I see. The info log is going to stdout or stderr instead of to a log file. Maybe we can detect this in the flag-printing code and only log the flags if the logs are being sent to a file?
Who's going to work on this? Can someone be assigned?
Is this already been fixed in ?

Discussion:
pflag.CommandLine.AddGoFlagSet(goflag.CommandLine) pflag.Parse() pflag.VisitAll(func(flag *pflag.Flag) { <del> glog.Infof("FLAG: --%s=%q", flag.Name, flag.Value) </del> <ins> glog.V(4).Infof("FLAG: --%s=%q", flag.Name, flag.Value) </ins> }) }
Change:
Since 2 days ago, the test is becoming more and more flaky, and one of the examples is: https://k8s-
There are no sig labels on this issue. Please by:<br(1) mentioning a sig: <bre.g., for API Machinery<br(2) specifying the label manually: <bre.g., for sig/scalability<br<brNote: method (1) will trigger a notification to the team. You can find the team list and label list
please triage this one. Currently I put it as the release blocker, and please feel free to remove that if you think it is not. Thanks!
The test deletes the node, and at the end, waits 5 minutes for the node to become ready, but it timed out. cc
The test logic hasn't changed after I last modified it, so the test deletes the node through gcloud, and the instance should be restarted automatically by GCE because it's part of an instance template. The likely possibility, as pointed out, is that another change made node discovery take longer, so extending the timeout would be enough. The very unlikely possibility is there's a problem discovering brand new instances.

Discussion:
const ( gcePDDetachTimeout  = 10 * time.Minute gcePDDetachPollTime = 10 * time.Second <del> nodeStatusTimeout   = 5 * time.Minute </del> <ins> nodeStatusTimeout   = 10 * time.Minute </ins> nodeStatusPollTime  = 1 * time.Second maxReadRetry        = 3 )