jiebi/CodeConvo huggingface dataset:
Change:
We need to have collected by: fluentd jenkins
could you please take a look?
I this is actually two separate problems. Exporting as artifact from master is easy. Exporting logs to the logging backend will require fluentd configuration changes =images version changes, which are blocked by and

Discussion:
readonly master_ssh_supported_providers="gce aws kubemark" readonly node_ssh_supported_providers="gce gke aws" <del> readonly master_logfiles="kube-apiserver kube-scheduler kube-controller-manager etcd glbc cluster-autoscaler" </del> <ins> readonly master_logfiles="kube-apiserver kube-scheduler rescheduler kube-controller-manager etcd glbc cluster-autoscaler" </ins> readonly node_logfiles="kube-proxy" readonly aws_logfiles="cloud-init-output" readonly gce_logfiles="startupscript"
Change:
codablock on slack reported an issue regarding (paraphrasing) "When used in combination with the Azure cloud provider, I get errors about Node.Status.Addresses being duplicated" Looking at the code, the Azure cloudprovider returns a HostName address, but then a HostName address is also by the kubelet code itself.
cc
I have two PRs with different alternatives: adds a hostname unless the cloudprovider already set one. relies on the cloudprovider to set one, and does not add one. I think has the problem that the cloudprovider has no way to say that Hostnames are not in use. relies on the cloudprovider adding the hostname if it wants it, which is trivial for it to do (the Azure provider already does it). any thoughts on the options?
I'd get the cloudprovider to set one if it wants () and avoid duplicating. I don't think the info from --hostname-override should be lost if the cloudprovider didn't have a hostname opinion

Discussion:
} if addressNodeHostName == nil { hostnameAddress := api.NodeAddress{Type: api.NodeHostName, Address: kl.GetHostname()} <del> node.Status.Addresses = append(nodeAddresses, hostnameAddress) </del> <ins> nodeAddresses = append(nodeAddresses, hostnameAddress) </ins> } else { glog.V(2).Infof("Using Node Hostname from cloudprovider: %q", addressNodeHostName.Address) } <ins> node.Status.Addresses = nodeAddresses </ins> } else { var ipAddr net.IP var err error
Change:
Unit tests on PR are failing due to data race in federation-controller/namespace unittest. More logs: https://k8s-
CC
Sent to fix this

Discussion:
"//pkg/client/clientset_generated/release_1_5:go_default_library", "//pkg/client/record:go_default_library", "//pkg/controller:go_default_library", <ins> "//pkg/conversion:go_default_library", </ins> "//pkg/runtime:go_default_library", "//pkg/util/flowcontrol:go_default_library", "//pkg/watch:go_default_library",

kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5" "k8s.io/kubernetes/pkg/client/record" "k8s.io/kubernetes/pkg/controller" <ins> "k8s.io/kubernetes/pkg/conversion" </ins> "k8s.io/kubernetes/pkg/runtime" "k8s.io/kubernetes/pkg/util/flowcontrol" "k8s.io/kubernetes/pkg/watch"

return } <del> baseNamespaceObj, exist, err := nc.namespaceInformerStore.GetByKey(namespace) </del> <ins> namespaceObjFromStore, exist, err := nc.namespaceInformerStore.GetByKey(namespace) </ins> if err != nil { glog.Errorf("Failed to query main namespace store for %v: %v", namespace, err) nc.deliverNamespace(namespace, 0, true)

// Not federated namespace, ignoring. return } <del> baseNamespace := baseNamespaceObj.(*api_v1.Namespace) </del> <ins> // Create a copy before modifying the namespace to prevent race condition with // other readers of namespace from store. namespaceObj, err := conversion.NewCloner().DeepCopy(namespaceObjFromStore) baseNamespace, ok := namespaceObj.(*api_v1.Namespace) if err != nil || !ok { glog.Errorf("Error in retrieving obj from store: %v, %v", ok, err) nc.deliverNamespace(namespace, 0, true) return } </ins> if baseNamespace.DeletionTimestamp != nil { if err := nc.delete(baseNamespace); err != nil { glog.Errorf("Failed to delete %s: %v", namespace, err)
Change:
Due to , we no longer copy the source code into . , however. Confirmed that the file now contains nothing useful: cc

Discussion:
# Clean out any old releases rm -rf "${RELEASE_DIR}" mkdir -p "${RELEASE_DIR}" <del> kube::release::package_build_image_tarball & </del> <ins> kube::release::package_src_tarball & </ins> kube::release::package_client_tarballs & kube::release::package_server_tarballs & kube::release::package_salt_tarball &

kube::util::wait-for-jobs || { kube::log::error "previous tarball phase failed"; return 1; } } <del> # Package the build image we used from the previous stage, for compliance/licensing/audit/yadda. function kube::release::package_build_image_tarball() { </del> <ins> # Package the source code we built, for compliance/licensing/audit/yadda. function kube::release::package_src_tarball() { </ins> kube::log::status "Building tarball: src" <del> "${TAR}" czf "${RELEASE_DIR}/kubernetes-src.tar.gz" -C "${LOCAL_OUTPUT_BUILD_CONTEXT}" . </del> <ins> local source_files=( $(cd "${KUBE_ROOT}" && find . -mindepth 1 -maxdepth 1  -not (  ( -path ./_*        -o  -path ./.git*     -o  -path ./.config/* -o  -path ./.gsutil/*     ) -prune  )) ) "${TAR}" czf "${RELEASE_DIR}/kubernetes-src.tar.gz" -C "${KUBE_ROOT}" "${source_files[@]}" </ins> } # Package up all of the cross compiled clients. Over time this should grow into
Change:
This is a FEATURE REQUEST. AFAIK, eviciton is first used in in . If a eviction is not allowed, the caller will get a , without a RetryAfter advice. See, It looks like this: { "metadata": {}, "status": "Failure", "message": "Cannot evict pod as it would violate the pod's disruption budget.", "code": 429 } It will be very helpful for and others to have a non-empty field. cc:
/sig apps
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. Prevent issues from auto-closing with an comment. 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 /remove-lifecycle stale
/remove-lifecycle rotten /lifecycle frozen
/sig api-machinery

Discussion:
} func createTooManyRequestsError(name string) error { <del> // TODO(mml): Add a Retry-After header.  Once there are time-based </del> <ins> // TODO: Once there are time-based </ins> // budgets, we can sometimes compute a sensible suggested value.  But <del> // even without that, we can give a suggestion (10 minutes?) that </del> <ins> // even without that, we can give a suggestion (even if small) that </ins> // prevents well-behaved clients from hammering us. <del> err := errors.NewTooManyRequests("Cannot evict pod as it would violate the pod's disruption budget.", 0) </del> <ins> err := errors.NewTooManyRequests("Cannot evict pod as it would violate the pod's disruption budget.", 10) </ins> err.ErrStatus.Details.Causes = append(err.ErrStatus.Details.Causes, metav1.StatusCause{Type: "DisruptionBudget", Message: fmt.Sprintf("The disruption budget %s is still being processed by the server.", name)}) return err }
Change:
https://k8s- Failed: TestSecretController {secret} Previous issues for this test:
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
This flake seems to have started after merged (just looking at the merge time line). Can you please take a look?
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
https://k8s- Failed: TestSecretController {secret}
Sorry just saw this, looking at it now
Sent for a fix
nice thanks

Discussion:
assert.Equal(t, secret1.Namespace, updatedSecret.Namespace) assert.True(t, secretsEqual(secret1, *updatedSecret), fmt.Sprintf("expected: %v, actual: %v", secret1, *updatedSecret)) <ins> // Wait for the secret to be updated in the informer store. err = WaitForSecretStoreUpdate( secretController.secretFederatedInformer.GetTargetStore(), cluster1.Name, types.NamespacedName{Namespace: secret1.Namespace, Name: secret1.Name}.String(), updatedSecret, wait.ForeverTestTimeout) assert.Nil(t, err, "secret should have been updated in the informer store") </ins> // Test update federated secret. secret1.Data = map[string][]byte{

} secretWatch.Modify(&secret1) updatedSecret2 := GetSecretFromChan(cluster1UpdateChan) <del> assert.NotNil(t, updatedSecret) assert.Equal(t, secret1.Name, updatedSecret.Name) </del> <ins> assert.NotNil(t, updatedSecret2) assert.Equal(t, secret1.Name, updatedSecret2.Name) </ins> assert.Equal(t, secret1.Namespace, updatedSecret.Namespace) assert.True(t, secretsEqual(secret1, *updatedSecret2), fmt.Sprintf("expected: %v, actual: %v", secret1, *updatedSecret2))

secret := GetObjectFromChan(c).(*api_v1.Secret) return secret } <ins> // Wait till the store is updated with latest secret. func WaitForSecretStoreUpdate(store util.FederatedReadOnlyStore, clusterName, key string, desiredSecret *api_v1.Secret, timeout time.Duration) error { retryInterval := 100 * time.Millisecond err := wait.PollImmediate(retryInterval, timeout, func() (bool, error) { obj, found, err := store.GetByKey(clusterName, key) if !found || err != nil { return false, err } equal := secretsEqual(*obj.(*api_v1.Secret), *desiredSecret) return equal, err }) return err } </ins>
Change:
Failed: https://k8s- Run so broken it didn't make JUnit output!
Looks like .
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!
Should be fixed by
Failed: https://k8s- Run so broken it didn't make JUnit output!
Failed: https://k8s- Run so broken it didn't make JUnit output!

Discussion:
return &unsupportedPodContainerManager{} } <del> func NewContainerManager(_ mount.Interface, _ cadvisor.Interface, _ NodeConfig) (ContainerManager, error) { </del> <ins> func NewContainerManager(_ mount.Interface, _ cadvisor.Interface, _ NodeConfig, failSwapOn bool) (ContainerManager, error) { </ins> return &unsupportedContainerManager{}, nil }

return nil } <del> func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.Interface, nodeConfig NodeConfig) (ContainerManager, error) { </del> <ins> func NewContainerManager(mountUtil mount.Interface, cadvisorInterface cadvisor.Interface, nodeConfig NodeConfig, failSwapOn bool) (ContainerManager, error) { </ins> return &containerManagerImpl{}, nil }
Change:
Is this a BUG REPORT or FEATURE REQUEST? (choose one): BUG REPORT on sample file I was using the /examples/https-nginx sample application for some small testing purposes and was surprised by the relative high load it kept having in the nginx pods. After some inspection I found out that kubernetes/examples/https-nginx/auto-reload- is basically running a busy loop. the command doesn't filter out some of the events it should filter out. At least on my system with just this sample config I always get a OPEN on basically immediately so I would recommend adding as arguments to the inotifywait command
I can take this.
I already have a PR in flight for this.
OK thanks for info

Discussion:
$ kubectl create -f /tmp/secret.json secret "nginxsecret" created <del> $ kubectl create configmap nginxconfigmap --from-file=examples/https-nginx/default.conf </del> <ins> $ kubectl create configmap nginxconfigmap --from-file=examples/https-nginx/default.conf </ins> configmap "nginxconfigmap" created ```

... ``` <del> Then we will update the configmap. First check your kubectl version. </del> <ins> Then we will update the configmap by changing `index.html` to `index2.html`. </ins> ```sh <del> $ kubectl version Client Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.4", GitCommit:"dd6b458ef8dbf24aff55795baa68f83383c9b3a9", GitTreeState:"clean", BuildDate:"2016-08-01T16:45:16Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"} Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.5", GitCommit:"b0deb2eb8f4037421077f77cb163dbb4c0a2a9f5", GitTreeState:"clean", BuildDate:"2016-08-11T20:21:58Z", GoVersion:"go1.6.2", Compiler:"gc", Platform:"linux/amd64"} ``` If you are using 1.5 or higher: Edit file `default.conf`: change `index index.html;` in line 8 to `index index2.html;`. ```sh $ kubectl replace configmap nginxconfigmap --from-file=default.conf configmap "nginxconfigmap" replaced ``` If you are using 1.4 or lower: Retrieve configmap nginxconfigmap. ```sh $ kubectl get configmap nginxconfigmap -o yaml > examples/https-nginx/nginxcm.yaml ``` Edit file `nginxcm.yaml`: change `index index.html;` to `index index2.html;`. Apply the change. ```sh $ kubectl apply -f examples/https-nginx/nginxcm.yaml </del> <ins> kubectl create configmap nginxconfigmap --from-file=examples/https-nginx/default.conf -o yaml --dry-run | sed 's/index.html/index2.html/g' | kubectl apply -f - </ins> configmap "nginxconfigmap" configured ```

nginx "$@" oldcksum=`cksum /etc/nginx/conf.d/default.conf` <del> inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T'  </del> <ins> inotifywait -e modify,move,create,delete -mr --timefmt '%d/%m/%y %H:%M' --format '%T'  </ins> /etc/nginx/conf.d/ | while read date time; do newcksum=`cksum /etc/nginx/conf.d/default.conf`
Change:
I tried to do a rollback on my own test cluster and got a panic. I will attach the data-dir tarball. The script that performs the migration goes from 2.2.1-2.3.7-3.0.14-2.3.7, and it is this last step that barfs. Script is forthcoming in a PR, but there's a snapshot at
This seems that it's not even about the real data, but about some metadata of the cluster. - any thoughts on it?
Is the data you uploaded the original data before 2.2.1-2.3.7?
yes
The rollback tool couldn't accept any v2 data existed. One way to make it work is to remove snap files:
To clarify, the panic is caused by existing v2 snap files. In the migrate step 2.3.7 -3.0.x, the script didn't remove v2 snap files.
- thanks a lot for looking into it. I will add a step to our migration script to remove the v2 data before rollback. Did it work after removing the data?
send out for review
To clarify - I verified that it fixed the problem reported (rollback works on the data provided in the issue).
The fix in the shell script is good, but the error message in the rollback tool could definitely be improved upon.
says that removing the snap file was not the right way to go.
i marked as milestone 1.5 and marking this as a non-release-blocker. hope this is correct.
Hmm... I tried re-running this on my test data, and now 2.3.7 always panics after the last step, whether I begin with backup data or not. Here is the data before running rollback: after running rollback:
I do not understand this. Does the migration tool still panic? Or the etcd 2.3.7 panics? etcd 2.3.7 should panic if you build the migration tool with 3.0 wal pkg. I believe I sent you the correct migration binary over slack.
Can we close this issue if the rollback tool stop panics? If the migrated data panics etcd 2.3, it is expected. And there is some other issues tracking it. I think we went though them a few weeks ago before thinks giving.
your slack message was lost while I was out of office, but the attached file is still there. Trying it now.
it works with the binary you shared. We still need a way to build that binary, but I will open a separate issue about that.

Discussion:
rm -rf "${ROLLBACK_BACKUP_DIR}" mkdir -p "${ROLLBACK_BACKUP_DIR}" cp -r "${DATA_DIRECTORY}" "${ROLLBACK_BACKUP_DIR}" <del> rm -rf "${DATA_DIRECTORY}"/member/snap/*.snap </del> echo "Performing etcd3 -> etcd2 rollback" ${ROLLBACK} --data-dir "${DATA_DIRECTORY}" if [ "$?" -ne "0" ]; then

"github.com/coreos/etcd/store" "github.com/coreos/etcd/wal" "github.com/coreos/etcd/wal/walpb" <ins> "github.com/coreos/go-semver/semver" </ins> "github.com/golang/glog" )

cluster := membership.NewCluster("") cluster.SetStore(st) <ins> cluster.Recover(func(*semver.Version) {}) </ins> applier := etcdserver.NewApplierV2(st, cluster) for _, ent := range ents {
Change:
BUG REPORT When using with multiple files (like when referencing a directory in ), the json or yaml output is not a valid list format, and when fed to just the first file gets created. Kubernetes version (use ): latest master What happened: only the first file in directory gets created. What you expected to happen: all files in directory must be created. How to reproduce it (as minimally and precisely as possible):

Discussion:
"os" "k8s.io/kubernetes/pkg/api" <ins> "k8s.io/kubernetes/pkg/api/meta" </ins> "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/apimachinery/registered" "k8s.io/kubernetes/pkg/kubectl"

return err } <del> count := 0 err = r.Visit(func(info *resource.Info, err error) error { </del> <ins> singular := false infos, err := r.IntoSingular(&singular).Infos() if err != nil { return err } if len(infos) == 0 { return fmt.Errorf("no objects passed to convert") } objects, err := resource.AsVersionedObject(infos, !singular, o.outputVersion, o.encoder) if err != nil { return err } if meta.IsListType(objects) { _, items, err := cmdutil.FilterResourceList(objects, nil, nil) </ins> if err != nil { return err } <del> infos := []*resource.Info{info} objects, err := resource.AsVersionedObject(infos, false, o.outputVersion, o.encoder) </del> <ins> filteredObj, err := cmdutil.ObjectListToVersionedObject(items, o.outputVersion) </ins> if err != nil { return err } <del> count++ return o.printer.PrintObj(objects, o.out) }) if err != nil { return err </del> <ins> return o.printer.PrintObj(filteredObj, o.out) </ins> } <del> if count == 0 { return fmt.Errorf("no objects passed to convert") } return nil </del> <ins> return o.printer.PrintObj(objects, o.out) </ins> }
Change:
Problem Local-up-cluster will start normally even if the hyperkube kubelet startup command fails. Solution Ensure local-up-cluster fail-fast if things are broke or if individual daemons dont start

Discussion:
${image_service_endpoint_args}  --port="$KUBELET_PORT" >"${KUBELET_LOG}" 2>&1 & KUBELET_PID=$! <ins> # Quick check that kubelet is running. if ps -p $KUBELET_PID > /dev/null ; then echo "kubelet ( $KUBELET_PID ) is running." else cat ${KUBELET_LOG} ; exit 1 fi </ins> else # Docker won't run a container with a cidfile (container id file) # unless that file does not already exist; clean up an existing
Change:
GCL logging test failed recently, related issue in In the fluentd logs there're a lot of lines like Because apparently this kind of messages in docker logs have different time format Fluentd configuration should be patched to handle this kind of messages. Maybe because of messages like this the logs were not delivered also, maybe fluentd spent too much cpu on docker log to keep up with all log files.
Just for your information, that this might happen with fluentd
cc/
thanks for catching this.
please fill an issue for Docker with the problem

Discussion:
<source> type tail format /^time="(?<time>[^)]*)" level=(?<severity>[^ ]*) msg="(?<message>[^"]*)"( err="(?<error>[^"]*)")?( statusCode=($<status_code>d+))?/ <del> time_format %Y-%m-%dT%H:%M:%S.%NZ </del> path /var/log/docker.log pos_file /var/log/es-docker.log.pos tag docker

<source> type tail format /^time="(?<time>[^)]*)" level=(?<severity>[^ ]*) msg="(?<message>[^"]*)"( err="(?<error>[^"]*)")?( statusCode=($<status_code>d+))?/ <del> time_format %Y-%m-%dT%H:%M:%S.%NZ </del> path /var/log/docker.log pos_file /var/log/gcp-docker.log.pos tag docker
Change:
Per : the surrounding loop is unconditionally terminated (SA4004) It does look very suspicious.
Pertinent patches: AWS: Set up security groups, to mirror GCE firewalling Fix AWS ip permission comparison on security group
This needs to be triaged as a release-blocker or not for 1.5
all issues must be labeled either release blocker or non release blocking by end of day 18 November 2016 PST. (or please move it to 1.6) cc
Moving to 1.7 as late to happen in 1.6. Feel free to switch back if this is incorrect.
This was a bug where we had multiple userid/group pairs, but we only ever called it with 0 or 1 elements. Fix in but kicking out of the 1.7 milestone.

Discussion:
break } } <del> if found == false { </del> <ins> if !found { </ins> return false } } for _, leftPair := range newPermission.UserIdGroupPairs { <ins> found := false </ins> for _, rightPair := range existing.UserIdGroupPairs { if isEqualUserGroupPair(leftPair, rightPair, compareGroupUserIDs) { <del> return true </del> <ins> found = true break </ins> } } <del> return false </del> <ins> if !found { return false } </ins> } return true

if equals { t.Errorf("Should have not been considered equal since first is not in the second array of groups") } <ins> // The first pair matches, but the second does not newIpPermission2 := ec2.IpPermission{ UserIdGroupPairs: []*ec2.UserIdGroupPair{ {GroupId: aws.String("firstGroupId")}, {GroupId: aws.String("fourthGroupId")}, }, } equals = ipPermissionExists(&newIpPermission2, &oldIpPermission, false) if equals { t.Errorf("Should have not been considered equal since first is not in the second array of groups") } </ins> } func TestIpPermissionExistsHandlesRangeSubsets(t *testing.T) {