jiebi/CodeConvo huggingface dataset:
Change:
"description": "VolumeError captures an error encountered during a volume operation.", "properties": { "message": { <del> "description": "String detailing the error encountered during Attach or Detach operation. This string maybe logged, so it should not contain sensitive information.", </del> <ins> "description": "String detailing the error encountered during Attach or Detach operation. This string may be logged, so it should not contain sensitive information.", </ins> "type": "string" }, "time": {

Discussion:
This came up as a follow up to Also rather than opening 5 different issues - we are going to use this github issue to track all follow up items mentioned here -
/sig storage
/assign /assign
: PR
and the rest is fixed in
Change:
### Hardcoded constants DEFAULT_CNI_VERSION="v0.8.7" DEFAULT_CNI_HASH="8f2cbee3b5f94d59f919054dccfe99a8e3db5473b553d91da8af4763e811138533e05df4dbeab16b3f774852b4184a7994968f5e036a3f531ad1ac4620d10ede" <del> DEFAULT_NPD_VERSION="v0.8.0" DEFAULT_NPD_HASH="b15d6919321e832b5fc7bc150c2e141e947305e82b34b514adbda9b9bc41088beadbf833f5bbbf44b9a8181c3fd8ed41e1629458d7544ccaecb374c22bde1517" </del> <ins> DEFAULT_NPD_VERSION="v0.8.5" DEFAULT_NPD_HASH="3fbf97a38c06d8fcc8c46f956a6e90aa1b47cb42d50ddcfd1a644a7e624e42ee523db2f81e08fbfb21b80142d4bafdbedce16e8b62d2274a5b2b703a56d9c015" </ins> DEFAULT_CRICTL_VERSION="v1.19.0" DEFAULT_CRICTL_HASH="fbbb34a1667bcf94df911a92ab6b70a9d2b34da967244a222f288bf0135c587cbfdcc89deedc5afd1823e109921df9caaa4e9ff9cc39e55a9b8cdea8eb6ebe72" DEFAULT_MOUNTER_TAR_SHA="7956fd42523de6b3107ddc3ce0e75233d2fcb78436ff07a1389b6eaac91fb2b1b72a08f7a219eaf96ba1ca4da8d45271002e0d60e0644e796c665f99bb356516"

Discussion:
What happened: In a cluster with NPD addon installed and Linux 5.1+ as the kernel OS of the nodes OOMs are not being captured by the NPD. What you expected to happen: NPD should inform about OOMs by emitting appropriate K8s events. How to reproduce it (as minimally and precisely as possible): Create a K8s cluster with NPD addon and Linux 5.1+ installed on the nodes. Schedule a pod which leaks memory. Try to list events with field after an OOM occurs to see there's none. Anything else we need to know?: Fix is already merged into newest (v0.8.5) NPD release: We're currently waiting for the release of Docker image of NPD v0.8.5 - we can proceed with fixing this in k/k afterwards. After it gets merged to the master branch, it should be then cherry-picked to older releases as well. Environment: Any Kubernetes version with NPD addon installed and Linux as the node OS with the kernel version 5.1 or newer.
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
/sig scalability /sig node I opened a fixing PR in but it's on hold since the Docker image of NPD v0.8.5 doesn't exist yet.
Change:
"github.com/coreos/etcd/clientv3" "github.com/coreos/etcd/pkg/transport" <ins> grpcprom "github.com/grpc-ecosystem/go-grpc-prometheus" "google.golang.org/grpc" </ins> "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apiserver/pkg/storage"

Discussion:
/kind feature Can we provide a way to enable etcd clientv3 prometheus metrics at the apiserver side ? The etcd.clientv3 interface is instantiated and it does not enable metrics. In file in coreos/etcd, one can see the to pass to enable metrics. It would be great if the apiserver has a command line parameter, config/environment variable to enable etcd.clientv3 metrics.
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
This issue is quite similar to
Yes, this is a good idea, in fact we just released a new version of the package required for this.
/assign
I can do it.
oh, maybe I should use the new features to implement, I will continue to modify it.
are you referring to injecting the registry to use? Yes I would very much appreciate that, even if we (for now) inject the , that will allow us to modify that more easily in the future.
Change:
"net/http/httptest" "net/url" "reflect" <ins> "strings" </ins> "testing" "k8s.io/apimachinery/pkg/util/sets" <ins> "k8s.io/apiserver/pkg/endpoints/metrics" "k8s.io/component-base/metrics/legacyregistry" "k8s.io/component-base/metrics/testutil" </ins> ) func TestInstallHandler(t *testing.T) {

Discussion:
What would you like to be : Currently the apiserver has request latencies metrics, which are a histogram of requests to the apiserver. However, these request metrics do not include healthz. While we have recently the ability to get back health check metrics from the healthz endpoint directly, we should also emit this data as a metric, so that we can monitor health check latencies. /assign /sig api-machinery instrumentation
GitHub didn't allow me to assign the following users: jktomer. Note that only , repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time. For more information please see <detailsIn response to : What would you like to be : /sig api-machinery instrumentation 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 noticed this is informally assigned. Has there been any progress? Is this a place I can fit in?
Yes, I'm working on a PR.
/assign
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. If this issue is safe to close now please do so with . Send feedback to sig-testing, kubernetes/test-infra and/or . /lifecycle stale
/remove-lifecycle stale
Change:
func TestErrorsToAPIStatus(t *testing.T) { cases := map[error]api.Status{ <del> NewAlreadyExistsErr("foo", "bar"): api.Status{ </del> <ins> NewAlreadyExistsErr("foo", "bar"): { </ins> Status:  api.StatusFailure, Code:    http.StatusConflict, Reason:  "already_exists",

Discussion:
https://travis- Seems surprising-- I will look into it later if no one else does first.
Got another flake. Looking into it.
Change:
// DefaultTrackOnCreateProbability defines the default probability that the field management of an object // starts being tracked from the object's creation, instead of from the first time the object is applied to. <del> const DefaultTrackOnCreateProbability float32 = 0.5 </del> <ins> const DefaultTrackOnCreateProbability float32 = 0.0 </ins> // Managed groups a fieldpath.ManagedFields together with the timestamps associated with each operation. type Managed interface {

Discussion:
<!-- Please only use this template for submitting reports about flaky tests or jobs (pass or fail with no underlying change in code) in Kubernetes CI --Which jobs are flaking: Which test(s) are flaking: Testgrid link: Reason for failure: Anything else we need to know: /cc /sig api-machinery /priority critical-urgent
This flake started to appear after Is this related?
According to this seems to start since 01/11/2020 /cc
this job become failing today /remove-kind flake /kind failing-test fyi any idea about this?
yes, being fixed in can we rollback the enablement of managed field persistence until this is resolved?
/assign
opened revert in to clean up CI signal (current pass rate is ~30%). Can reintroduce once the serialization issue is resolved
Change:
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)

Discussion:
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'.
Change:
} } <ins> func TestDeletePodForNotExistingNode(t *testing.T) { for _, f := range []bool{true, false} { defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ScheduleDaemonSetPods, f)() for _, strategy := range updateStrategies() { ds := newDaemonSet("foo") ds.Spec.UpdateStrategy = *strategy manager, podControl, _, err := newTestController(ds) if err != nil { t.Fatalf("error creating DaemonSets controller: %v", err) } manager.dsStore.Add(ds) addNodes(manager.nodeStore, 0, 1, nil) addPods(manager.podStore, "node-0", simpleDaemonSetLabel, ds, 1) addPods(manager.podStore, "node-1", simpleDaemonSetLabel, ds, 1) syncAndValidateDaemonSets(t, manager, ds, podControl, 0, 1, 0) } } } </ins> func TestGetNodesToDaemonPods(t *testing.T) { for _, f := range []bool{true, false} { defer utilfeaturetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.ScheduleDaemonSetPods, f)()

Discussion:
What happened: DaemonSet doesn't delete pods that: weren't scheduled yet, node was deleted so pod can't be scheduled. What you expected to happen: Pod should be deleted when node is removed. How to reproduce it (as minimally and precisely as possible): I encountered this problem when doing tests with cluster with 1000 nodes and pods running. During tests I was deleting and adding nodes using GCE API without draining them. I reproduced problem on much smaller cluster but it requires stopping K8s scheduler. Scenario: cluster with 2 nodes. till fluentd-gcp pods are running on nodes. K8s scheduler. fluentd-gcp pods. till daemonset controller creates pending pods. one node. scheduler. of the fluentd-gcp pods will be pending and scheduler won't be able to schedule. Anything else we need to know?: Environment: GKE Kubernetes version (use ): <!-- DO NOT EDIT BELOW THIS LINE --/kind bug
/sig apps
/assign janetkuo
/assign
We have PodGC to clean up orphaned pods every 20s, is that enough?
I'm removing pods that have only node affinity set and don't have pod.Spec.NodeName set. These pods were never touched by scheduler before node was removed and after node was removed can't be scheduled as node is doesn't exist anymore. Such pods are pending forever and PodGC can't remove them as pod.Spec.NodeName is empty.
Yes, that's right :) let me take few time to review the PR, thanks.
Should I backport fix to 1.13 and 1.12?
+1
Change:
return dk.creds[k], true } <ins> // use credentials for the default registry if provided if auth, ok := dk.creds[defaultRegistryHost]; ok { return auth, true } </ins> return docker.AuthConfiguration{}, false }

Discussion:
Pulls of images from private repos hosted on the default registry, , fail because the images are not prefixed, thus the fails. I've figured out a hacky way of getting around this issue by manually editing the .dockercfg but as a more permanent solution, I'd like to propose using authentication with the default registry if it is provided in the .dockercfg. Opening this issue to start some discussion. I'll attach a first pass at this in a pull request.
Change:
fi # KUBECONFIG determines the file we write to, but it may not exist yet <del> if [[ ! -e "${KUBECONFIG}" ]]; then mkdir -p $(dirname "${KUBECONFIG}") touch "${KUBECONFIG}" fi </del> <ins> OLD_IFS=$IFS IFS=':' for cfg in ${KUBECONFIG} ; do if [[ ! -e "${cfg}" ]]; then mkdir -p "$(dirname "${cfg}")" touch "${cfg}" fi done IFS=$OLD_IFS </ins> local cluster_args=( "--server=${KUBE_SERVER:-https://${KUBE_MASTER_IP}}" )

Discussion:
Given the KUBECONFIG environment variable is set to , when is run, then it creates a file and its parent directories called which is not desired. The problem is at where it doesn't take into consideration that . It looks likes that code is a legacy from an earlier time, because elsewhere the code uses kubectl instead of editing the kubeconfig file directly, so those lines should probably be removed.
I can work on this.
Change:
"k8s.io/apiserver/pkg/authentication/authenticator" "k8s.io/apiserver/pkg/authentication/user" <ins> "k8s.io/apiserver/pkg/endpoints/request" </ins> ) const (

Discussion:
Semantics are going to vary. We need to cross off these authenticators: [x] if ctx has an audience limitation, verify the token audience and echo in the response [x] take implicit audiences at WebhookTokenAuthenticator construction time if ctx is audience-limited, add into the tokenreview object if the tokenreview returns with an audience set that matches the ctx, copy into the response and return success if the tokenreview returns without an audience set, ensure the ctx audiences intersect with the implicit audiences taken at WebhookTokenAuthenticator construction time, and pick one to add into the response [x] echo audience in response if present in ctx [x] echo audience in response if present in ctx [x] check that the the order of (audience in the context) ∩ ( (implicit api audiences) ∪ (clientids) ) 0 Take implicit audiences at Authenticator construction time, and if ctx is audience-limited, ensure it intersects with the implicit audiences, and echo an audience in the response. [x] [x] [x] [x] [x] [x] Do nothing? [x] [x] [x] [x] [x] [x] [x] note: we already keyed the cache with the audience. [x]
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
/close
Closing this issue. <detailsIn response to : /close 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
Change:
) } <del> kube::test::find_pkgs() { kube::test::find_dirs | xargs -n1 printf "${KUBE_GO_PACKAGE}/%sn" } </del> # -covermode=atomic becomes default with -race in Go >=1.3 KUBE_TIMEOUT=${KUBE_TIMEOUT:--timeout 120s} <del> KUBE_COVER=${KUBE_COVER:-} # use KUBE_COVER="-cover -covermode=atomic" for full coverage </del> <ins> KUBE_COVER=${KUBE_COVER:-} # set to nonempty string to enable coverage collection KUBE_COVERMODE=${KUBE_COVERMODE:-atomic} </ins> KUBE_RACE=${KUBE_RACE:-}   # use KUBE_RACE="-race" to enable race testing <ins> # Set to the goveralls binary path to report coverage results to Coveralls.io. KUBE_GOVERALLS_BIN=${KUBE_GOVERALLS_BIN:-} </ins> kube::test::usage() { kube::log::usage_from_stdin <<EOF

Discussion:
Right now, we execute unit tests in Travis with , and you can see the results on each line: but we don't have an easy place to go browse our code and figure out what's covered and what isn't. Is there some awesome way to do this? At the very least, can we get the actual line-by-line coverage results integrated into our CI build process so we can poke at these somehow?
cc
I'm willing to take a look into this to at least see if something is possible.
Looking into using Coveralls; there are a few other teams at Google already using this. Integration with Travis and Go are supported with the goveralls package:
Unit test coverage can now be viewed at - both master push builds and PRs will be shown there; additionally, Coveralls will update the status and post comments on PRs with coverage stats. (If we find these too spammy, we can disable either or both.) The top-level also has a badge/link to the coverage dashbaord.
Change:
f, tf, codec, _ := NewAPIFactory() ns := dynamic.ContentConfig().NegotiatedSerializer tf.Printer = &testPrinter{} <ins> created := map[string]bool{} </ins> tf.Client = &fake.RESTClient{ NegotiatedSerializer: ns, Client: fake.CreateHTTPClient(func(req *http.Request) (*http.Response, error) { switch p, m := req.URL.Path, req.Method; { <del> case strings.HasPrefix(p, "/namespaces/test/replicationcontrollers/") && (m == http.MethodGet || m == http.MethodPut || m == http.MethodDelete): </del> <ins> case strings.HasPrefix(p, "/namespaces/test/replicationcontrollers/") && m == http.MethodPut: created[p] = true return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, &rc.Items[0])}, nil case strings.HasPrefix(p, "/namespaces/test/replicationcontrollers/") && m == http.MethodGet: statusCode := http.StatusNotFound if created[p] { statusCode = http.StatusOK } return &http.Response{StatusCode: statusCode, Header: defaultHeader(), Body: objBody(codec, &rc.Items[0])}, nil case strings.HasPrefix(p, "/namespaces/test/replicationcontrollers/") && m == http.MethodDelete: delete(created, p) </ins> return &http.Response{StatusCode: http.StatusOK, Header: defaultHeader(), Body: objBody(codec, &rc.Items[0])}, nil case strings.HasPrefix(p, "/namespaces/test/replicationcontrollers") && m == http.MethodPost: return &http.Response{StatusCode: http.StatusCreated, Header: defaultHeader(), Body: objBody(codec, &rc.Items[0])}, nil

Discussion:
When replacing an existing pod, the command fails as it tries to create a pod with a name that is still used by terminating pod. How does the option works? deletes a pod (e.g. mypod) creates a new pod with the same name (mypod) What happens? As the command tries to recreate the pod, it fails as the is in state. Thus it can not be created. The problem is the does not wait for a pod to be deleted. Reproducer: run mypod --image=yapei/hello-openshift --generator=run-pod/v1 get pod mypod -o yaml replace -f --force The last command ends with:
option introduce by
With set to positive value, what should be the default behaviour of the command? When set to , should the command hang for and then create the pod? Or is there a way to create a callback (inside a scheduler?) that creates the pod once the current one is deleted?
You could watch for the resource to be deleted and create after you see the deletion happen
have you ever tried to set , I think this will do a non graceful deletion. should make sure the old resource is deleted before it creates a new resource, if not, that's a bug.
Though the help says the is to be used only with , it returns the error above.
Then I think there are two issues we need to track: 1. option should be ignored or just returns error if users are not using option. 2. should always make sure the old resource has been deleted before create the new resource.
Change:
- name: SchedulingPreferredAffinityWithNSSelector defaultPodTemplatePath: config/pod-preferred-affinity-ns-selector.yaml <del> featureGates: PodAffinityNamespaceSelector: true </del> workloadTemplate: - opcode: createNodes countParam: $initNodes

Discussion:
/sig scheduling in the job is failing. success run Due to this failure, we cannot see any scheduler metrics results from the perf-dash. master
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
/remove-kind bug /kind flake /kind failing-test
/assign /remove-kind flake
will fixed by
Change:
SelfLink          string    `json:"selfLink,omitempty" yaml:"selfLink,omitempty"` ResourceVersion   uint64    `json:"resourceVersion,omitempty" yaml:"resourceVersion,omitempty"` APIVersion        string    `json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"` <del> Namespace         string    `json:"namespace",omitempty" yaml:"namespace,omitempty"` </del> <ins> Namespace         string    `json:"namespace,omitempty" yaml:"namespace,omitempty"` </ins> UID               string    `json:"uid,omitempty" yaml:"uid,omitempty"` // Annotations are unstructured key value data stored with a resource that may be set by

Discussion:
For example: struct field tag not compatible with reflect.StructTag.Get missing argument for Errorf("%v"): format reads arg 2, have only 1 args range variable pod enclosed by function struct field tag not compatible with reflect.StructTag.Get arg minion for printf verb %s of wrong type: unreachable code unreachable code
Those all look really important
I'm going to fix this unless I hear that someone else is working on this in the next couple minutes.
Change:
KUBE_HOME="/home/kubernetes" KUBE_BIN=${KUBE_HOME}/bin <ins> PYTHON="python" </ins> CONTAINERIZED_MOUNTER_HOME="${KUBE_HOME}/containerized_mounter" PV_RECYCLER_OVERRIDE_TEMPLATE="${KUBE_HOME}/kube-manifests/kubernetes/pv-recycler-template.yaml" <ins> if [[ "$(python -V)" =~ "Python 3" ]]; then PYTHON="/usr/bin/python2.7" fi </ins> if [[ ! -e "${KUBE_HOME}/kube-env" ]]; then echo "The ${KUBE_HOME}/kube-env file does not exist!! Terminate cluster initialization." exit 1

Discussion:
What happened: Pick an OS image where python is python3 and the cluster will not come up. What you expected to happen: Cluster should come up. How to reproduce it (as minimally and precisely as possible): Switch the default OS image to use an OS which has python3 as the default python. Run cluster/kube- for GCE. Anything else we need to know?: Environment: Kubernetes version (use ): Cloud provider or hardware configuration: OS (e.g: ): Kernel (e.g. ): Install tools: Network plugin and version (if this is a network-related bug): Others:
/sig cloud-provider
/assign
Change:
} // convert attr.VersionedObject to the internal version in the underlying admission.Attributes <del> return a.plugin.scheme.Convert(attr.VersionedObject, attr.Attributes.GetObject(), nil) </del> <ins> if attr.VersionedObject != nil { return a.plugin.scheme.Convert(attr.VersionedObject, attr.Attributes.GetObject(), nil) } return nil </ins> } // note that callAttrMutatingHook updates attr

Discussion:
We had mutating webhooks on delete operation. After updating to Kubernetes 1.11, it is failing. Stacktrace: I tried to debug and this is what I found: is nil. Calling causes this error. I see that the code path has not changed since 1.10. But we don't see the same error in 1.10 minikube cluster. I can't explain that. We have stopped using mutating webhook on delete operation anyway, since it does not make much sense. But I thought I should file a bug just in case. /kind bug /sig api-machinery
cc:
thanks for the report... is this on a custom resource or a native resource? edit: nevermind, found in the stack
It is a CRD.
fix is in , pick to 1.11.x in conversion of unstructured objects (used internally for CRDs) changed in 1.11 as part of CRD versioning, which made them actually go through the conversion stack
/assign