jiebi/CodeConvo huggingface dataset:
Change:
/kind failing-test <!-- If this is a flake, please add: /kind flake --/sig node
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 node
could be related to
/assign
Yes, tests should be skipped with Feature:InPlacePodVerticalScaling on those CIs , it fails because InPlacePodVerticalScaling is not enabled. Will update tomorrow morning, checking more closely how to fix in a smooth way
Thanks , It was failing in 11 jobs for two reasons: In 7 jobs because InPlacePodVerticalScaling was not supported and was missed to identify, attempt to fix by because all impacted CI jobs will skip tests with labels with prefix NodeAlphaFeatures In 4 jobs because Arm64 was not checked in one test, attempt to fix by

Discussion:
tc := tests[idx] ginkgo.It(tc.name, func(ctx context.Context) { ginkgo.By("waiting for the node to be ready", func() { <del> if !supportsInPlacePodVerticalScaling(ctx, f) || framework.NodeOSDistroIs("windows") { </del> <ins> if !supportsInPlacePodVerticalScaling(ctx, f) || framework.NodeOSDistroIs("windows") || isRunningOnArm64() { </ins> e2eskipper.Skipf("runtime does not support InPlacePodVerticalScaling -- skipping") } })

//       Above tests are performed by doSheduletTests() and doPodResizeResourceQuotaTests() //       in test/node/pod_resize_test.go <del> var _ = SIGDescribe("Pod InPlace Resize Container", framework.WithSerial(), feature.InPlacePodVerticalScaling, func() { </del> <ins> var _ = SIGDescribe("Pod InPlace Resize Container", framework.WithSerial(), feature.InPlacePodVerticalScaling, "[NodeAlphaFeature:InPlacePodVerticalScaling]", func() { </ins> if !podOnCgroupv2Node { cgroupMemLimit = CgroupMemLimit cgroupCPULimit = CgroupCPUQuota
Change:
https://prow.ppc64le- E2eNode Suite: [It] [sig-node] DefaultProcMount [LinuxOnly] [NodeConformance] will mask proc mounts by default in 2024-07-17 06:00:19 +0000 UTC No response Debugged to identify that on a ppc64le machine, the available files are as follows: while on an amd64 machine, is an additional entry, with the following output: As ppc64le does not implement ACPI, the test case may need a minor change to accommodate the architecture by changing the number of lines to exist to be =6. No response /sig node
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
cc Thanks!
Testgrid Link:

Discussion:
f.NamespacePodSecurityLevel = admissionapi.LevelBaseline ginkgo.It("will mask proc mounts by default", func(ctx context.Context) { <del> testProcMount(ctx, f, v1.DefaultProcMount, gomega.BeNumerically(">=", 10), gomega.BeNumerically(">=", 7)) </del> <ins> testProcMount(ctx, f, v1.DefaultProcMount, gomega.BeNumerically(">", 1), gomega.BeNumerically(">", 0)) </ins> }) })
Change:
/kind failing-test <!-- If this is a flake, please add: /kind flake --/sig storage
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
please see <img width="840" alt="image" src=""
looking at the failures could be between the following SHA(s):
the main commit there is can you please look into it?
shows the same as well. commit range is
Found the issue, proposing a fix in

Discussion:
func (o *imagePlugin) GetVolumeName(spec *volume.Spec) (string, error) { return o.spec.Name(), nil } func (o *imagePlugin) CanSupport(spec *volume.Spec) bool { <del> return spec.Volume.Image != nil </del> <ins> return spec != nil && spec.Volume != nil && spec.Volume.Image != nil </ins> } func (o *imagePlugin) NewMounter(spec *volume.Spec, podRef *v1.Pod, opts volume.VolumeOptions) (volume.Mounter, error) {
Change:
pull-kubernetes-unit TestRoundTripFuzzing Only noticed the failure once in No response No response No response
/sig network may be caused by
This flakes in /cc
/assign so the problem is that sometimes the fuzzer generates a random string value that contains a comma, and when that gets converted back from v1alpha1, the comma is treated as punctuation rather than as part of the value. we should probably manually fuzz ClusterCIDRs to contain 0-2 actual CIDR values
/triage accepted
Saw here:

Discussion:
import ( "fmt" <ins> "net/netip" </ins> "time" "github.com/google/gofuzz"

"k8s.io/utils/ptr" ) <ins> // generateRandomIP is copied from pkg/apis/networking/fuzzer/fuzzer.go func generateRandomIP(is6 bool, c fuzz.Continue) string { n := 4 if is6 { n = 16 } bytes := make([]byte, n) for i := 0; i < n; i++ { bytes[i] = uint8(c.Rand.Intn(255)) } ip, ok := netip.AddrFromSlice(bytes) if ok { return ip.String() } // this should not happen panic(fmt.Sprintf("invalid IP %v", bytes)) } // generateRandomCIDR is copied from pkg/apis/networking/fuzzer/fuzzer.go func generateRandomCIDR(is6 bool, c fuzz.Continue) string { ip, err := netip.ParseAddr(generateRandomIP(is6, c)) if err != nil { // generateRandomIP already panics if returns a not valid ip panic(err) } n := 32 if is6 { n = 128 } bits := c.Rand.Intn(n) prefix := netip.PrefixFrom(ip, bits) return prefix.Masked().String() } // getRandomDualStackCIDR returns a random dual-stack CIDR. func getRandomDualStackCIDR(c fuzz.Continue) []string { cidrIPv4 := generateRandomCIDR(false, c) cidrIPv6 := generateRandomCIDR(true, c) cidrs := []string{cidrIPv4, cidrIPv6} if c.RandBool() { cidrs = []string{cidrIPv6, cidrIPv4} } return cidrs[:1+c.Intn(2)] } </ins> // Funcs returns the fuzzer functions for the kube-proxy apis. func Funcs(codecs runtimeserializer.CodecFactory) []interface{} { return []interface{}{

c.FuzzNoCustom(obj) obj.BindAddress = fmt.Sprintf("%d.%d.%d.%d", c.Intn(256), c.Intn(256), c.Intn(256), c.Intn(256)) obj.ClientConnection.ContentType = c.RandString() <ins> obj.DetectLocal.ClusterCIDRs = getRandomDualStackCIDR(c) </ins> obj.Linux.Conntrack.MaxPerCore = ptr.To(c.Int31()) obj.Linux.Conntrack.Min = ptr.To(c.Int31()) obj.Linux.Conntrack.TCPCloseWaitTimeout = &metav1.Duration{Duration: time.Duration(c.Int63()) * time.Hour}
Change:
build only 2 runs are available. ERROR: () build -dd5a-468e-9a7a- completed with status "FAILURE" [33m1 warning found (use --debug to expand): [0m - InvalidDefaultArgInFrom: Default value for ARG ${RUNNERIMAGE} results in empty or invalid base image name (line 16) Dockerfile.windows:22 20 | COPY etcd etcdctl /usr/local/bin/ 21 | COPY migrate-if- /usr/local/bin/ 22 | COPY migrate 23 | 24 | # NOTE(claudiub): docker buildx sets the PATH env variable to a Linux-like PATH, ERROR: failed to solve: mkdir /var/lib/buildkit/runc-overlayfs/cachemounts/buildkit3627953617/usr/local/bin: not a directory make[1]: Leaving directory '/workspace/cluster/images/etcd' make[1]: [Makefile:132: build] Error 1 make: [Makefile:217: sub-push-image-windows-amd64-1809] Error 2 ERROR ERROR: build step 0 "" failed: step exited with non-zero status: 2
2024/07/25 02:39:53 Failed to run some build jobs: [error running [gcloud builds submit --verbosity info --config The etcd 3.5.15 post CI failed to build the image. needs to promote the image: This is post submit CI for /sig release etcd
/cc
can you please try this?
cc Folks, We could use your help fixing the etcd image for windows!
/triage accepted /priority important-soon
actually passed in

Discussion:
EXPOSE 2379 2380 4001 7001 <ins> WORKDIR C:/usr/local/bin </ins> COPY etcd* etcdctl* /usr/local/bin/ COPY migrate-if-needed.bat /usr/local/bin/ COPY migrate /usr/local/bin/migrate.exe
Change:
TestUpdateAllocatedResourcesStatus Few days ago No response No response /sig node
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
I could reproduce this with in maybe 1/10 times.
cc I am unfamilar with this code so wanted to see if you have any ideas on this.
yes, I'll have a look ASAP
In the flake, the ResourceHealth array is with a different order. If this is acceptable, we should tune the test.
nice catch ! I think the best fix is ensure the ordering of statuses either in the production code or in the test code before to check Note: if we do this in the production code then we should go full throttle and offer a full API guarantee (docs, explicit tests) because users will depend on this
A quick fix is like if we want to ignore the order.

Discussion:
"path/filepath" "reflect" goruntime "runtime" <ins> "sort" </ins> "sync" "sync/atomic" "testing"

AllocatedResourcesStatus: []v1.ResourceStatus{expectedStatus}, }, } <ins> // Sort the resources for the expected status and actual status sortContainerStatuses(status.ContainerStatuses) sortContainerStatuses(expectedContainerStatuses) </ins> if !reflect.DeepEqual(status.ContainerStatuses, expectedContainerStatuses) { t.Errorf("UpdateAllocatedResourcesStatus failed, expected: %v, got: %v", expectedContainerStatuses, status.ContainerStatuses) } } <ins> // Helper function to sort ResourceHealth slices func sortResourceHealth(resources []v1.ResourceHealth) { sort.SliceStable(resources, func(i, j int) bool { return resources[i].ResourceID < resources[j].ResourceID }) } // Helper function to sort ContainerStatus slices func sortContainerStatuses(statuses []v1.ContainerStatus) { for i := range statuses { for j := range statuses[i].AllocatedResourcesStatus { sortResourceHealth(statuses[i].AllocatedResourcesStatus[j].Resources) } } } </ins>
Change:
In multi test grid: /kind failing-test /sig node
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
/cc
/cc This is caused by that those test CI didn't enable ResourceHealthStatus. A fix in is to skip it if the FG is disabled.

Discussion:
v1 "k8s.io/api/core/v1" kubeletdevicepluginv1beta1 "k8s.io/kubelet/pkg/apis/deviceplugin/v1beta1" <ins> "k8s.io/kubernetes/pkg/features" </ins> e2epod "k8s.io/kubernetes/test/e2e/framework/pod" <ins> e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper" </ins> "k8s.io/kubernetes/test/e2e/nodefeature" imageutils "k8s.io/kubernetes/test/utils/image" admissionapi "k8s.io/pod-security-admission/api"

devicePluginUpdateTimeout := 1 * time.Minute ginkgo.It("will report a Healthy and then Unhealthy single device in the pod status", func(ctx context.Context) { <ins> e2eskipper.SkipUnlessFeatureGateEnabled(features.ResourceHealthStatus) </ins> // randomizing so tests can run in parallel resourceName := fmt.Sprintf("test.device/%s", f.UniqueName) devices := []kubeletdevicepluginv1beta1.Device{{ID: "testdevice", Health: kubeletdevicepluginv1beta1.Healthy}}

}) ginkgo.It("will report a Device Status for the failed pod in the pod status", func(ctx context.Context) { <ins> e2eskipper.SkipUnlessFeatureGateEnabled(features.ResourceHealthStatus) </ins> // randomizing so tests can run in parallel resourceName := fmt.Sprintf("test.device/%s", f.UniqueName) devices := []kubeletdevicepluginv1beta1.Device{{ID: "testdevice", Health: kubeletdevicepluginv1beta1.Healthy}}
Change:
For cloud provider nodes, there are some k8s label names are reserved. Like and The current regex is: This will match the dot . as any single character. This block adding a label name like: app.k8snio/name The regex format is incorrect, we should escape the dot in regex so that it can match the dot as a string. Can add additional label with name like: app.k8snio/name Configure AdditionalLabels in the instanceMeta to add additional label name with app.k8snio/name. No response <detailsClient Version: v1.30.1 Kustomize Version: v5.0.4-0.- Server Version: v1.30.0 </details<details</details<details</details<details</details<details</details<details</details
/sig cloud-provider
If it make sense to fix it, i would like to take it and raise a PR. /assign
Which Kubernetes component has the bug ? (eg: kubelet) Can you explain how to reproduce the problem?
It's the node controller in the shared library Though I really don't think cloud providers should be setting node labels like "", this is technically incorrect. This restriction is only applied to labels the cloud provider controller binary running this controller would attempt to add itself.
just noticed this after our SIG meeting today, cc
/triage accepted
please go ahead and raise a PR, thanks for reporting this =)
When fixing this, consider if there are any labels that cloud provider integration might legitimately set. For example: (documented as being set by cloud provider integration code). Some labels are OK to set; we could allowlist and explicitly. When rejecting some others, maybe setting a Condition on the Node ( perhaps) would help surface what's not right. Not sure. Making the simple fix is also fine by me.
OK. Thanks I have raised a PR for this: Not sure if this change looks good.

Discussion:
n.Labels = map[string]string{} } <del> k8sNamespaceRegex := regexp.MustCompile("(kubernetes|k8s).io/") </del> <ins> k8sNamespaceRegex := regexp.MustCompile(`(^|.)(kubernetes|k8s).io/`) </ins> for k, v := range instanceMeta.AdditionalLabels { // Cloud provider should not be using kubernetes namespaces in labels if isK8sNamespace := k8sNamespaceRegex.MatchString(k); isK8sNamespace {

// and should be discarded "topology.kubernetes.io/region": "us-other-west", "topology.k8s.io/region":        "us-other-west", <ins> "kubernetes.io/region":          "us-other-west", "k8s.io/region":                 "us-other-west", </ins> // Should discard labels that already exist "my.custom.label/foo": "bar", "my.custom.label/bar": "foo", <ins> // Should add labels that not match regex "app.k8snio/bar": "foo", "k8snio/bar":     "foo", </ins> }, }, existingNode: &v1.Node{

"topology.kubernetes.io/zone":              "us-west-1a", "my.custom.label/foo":                      "fizz", "my.custom.label/bar":                      "foo", <ins> "app.k8snio/bar":                           "foo", "k8snio/bar":                               "foo", </ins> }, }, Spec: v1.NodeSpec{
Change:
/kind failing-test <!-- If this is a flake, please add: /kind flake --/sig storage
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
3 tests seem to be failing related to sig-storage: <img width="1229" alt="image" src=""
Also see there are a few there as well
/assign
x-ref Looks like the only jobs running volume metrics tests are e2e-ci-kubernetes-e2e-cos-gce-serial-canary &e2e-ci-kubernetes-e2e-al2023-aws-serial-canary... In that PR we are trying to make those tests run in for kind clusters and gce-serial. Therefore [sig-storage] [Serial] Volume metrics PVC should create metrics for total number of volumes in A/D Controller has likely been broken for a while. Is the metric for being emitted in that test at all? I printed the metricsGrabber results while running test on a kOps cluster and only saw . Could have printed wrong though*
Thanks for dumping the metrics, good call. Could we be dealing with a logical error in the test? I would expect that the only requirement for passing a test to be that the metric is emitted (which it is, as per the dump) It's odd to also expect in . Ideally, this validation: should be part of a separate test.
cc
Perhaps later an extra serial test where force detach is actually excercised should be . But I think the short-term question we should be trying to solve next is why the forced detach metric is not present in this test, and if that is a regression vs this test not functioning correctly for last few years since line was . ~If I were consuming these metrics, I would expect that there is an metric emitted, even if the value is 0, if any volumes were attached/detached for a particular driver. Right? (But Perhaps metric only emitted lazily on first detach? Will investigate deeper)~ Never mind, it makes sense for this metric to be missing if force detach never happened, and perhaps this test has just been broken for 6 years since this line was . I'll go put up a PR.

Discussion:
e2eskipper.Skipf("Could not get controller-manager metrics - skipping") } <del> // Forced detach metric should be present forceDetachKey := "attachdetach_controller_forced_detaches" _, ok := updatedControllerMetrics[forceDetachKey] if !ok { framework.Failf("Key %q not found in A/D Controller metrics", forceDetachKey) } </del> // Wait and validate totalVolumesKey := "attachdetach_controller_total_volumes" states := []string{"actual_state_of_world", "desired_state_of_world"}
Change:
whether should init gorestful.container.ServeMux once none No response <details</details<details</details<details</details<details</details<details</details<details</details
/sig api-machinery
/assign /triage accepted
Hi , as for my understanding, func 'NewAPIServerHandler' initialize gorestfulContainer.ServeMux each time due to gorestfulContainer.ServeMux = http.NewServeMux() when the function is called ,am i right ?
Looks like it is duplicated and we should be able to remove the call. Feel free to assign if anyone would like to send a PR for this.
I want to work on this but need to some guidance
Yes, and it should already have been initialized when calling
yes got it , so we can remove call gorestfulContainer.ServeMux = http.NewServeMux() ?
yes
/assign I will raised PR.
Hi I have raised PR could you check ?

Discussion:
} gorestfulContainer := restful.NewContainer() <del> gorestfulContainer.ServeMux = http.NewServeMux() </del> gorestfulContainer.Router(restful.CurlyRouter{}) // e.g. for proxy/{kind}/{name}/{*} gorestfulContainer.RecoverHandler(func(panicReason interface{}, httpWriter http.ResponseWriter) { logStackOnRecover(s, panicReason, httpWriter)
Change:
In v1.31.0-rc.1 commands hang, see relevant thread for details. Second command should work, as it does with kubectl v1.30.3 Reproducer against a 1.30.3 server: No response <details</details<details</details<details</details<details</details<details</details<details</details
cc
looks like a regression introduced in /assign
thanks so much for the very detailed and timely report, great to catch this before the .0 release

Discussion:
case lowercaseCond == "create": return IsCreated, nil <del> case strings.HasPrefix(lowercaseCond, "condition="): conditionName := lowercaseCond[len("condition="):] </del> <ins> case strings.HasPrefix(condition, "condition="): conditionName := strings.TrimPrefix(condition, "condition=") </ins> conditionValue := "true" if equalsIndex := strings.Index(conditionName, "="); equalsIndex != -1 { conditionValue = conditionName[equalsIndex+1:]

errOut:          errOut, }.IsConditionMet, nil <del> case strings.HasPrefix(lowercaseCond, "jsonpath="): jsonPathInput := strings.TrimPrefix(lowercaseCond, "jsonpath=") </del> <ins> case strings.HasPrefix(condition, "jsonpath="): jsonPathInput := strings.TrimPrefix(condition, "jsonpath=") </ins> jsonPathExp, jsonPathValue, err := processJSONPathInput(jsonPathInput) if err != nil { return nil, err

# Post-Condition: Wait failed kube::test::if_has_string "${output_message}" 'timed out' <ins> # wait with mixed case jsonpath output_message=$(kubectl wait --for=jsonpath=.status.unavailableReplicas=1 deploy/test-1 2>&1) # Post-Condition: Wait failed kube::test::if_has_string "${output_message}" 'test-1 condition met' </ins> # Delete all deployments async to kubectl wait ( sleep 2 && kubectl delete deployment --all ) &
Change:
Trying out the (excellent!) new Apply with the fake client, I found a different from the fake vs real client My patch: Here we lose the name. We extract the namespace from the action, but use which is empty. This means we have no name, the fails, and we attempt to a nameless object. This doesn't apply to other patch types, which get the live object and apply the patch to them before this point. This could be fixed, perhaps, by inserting before we call ? cc /sig api-machinery
Good catch and thank for kicking the tires on the new fake client functionality. look right?
/triage accepted /assign /kind bug

Discussion:
if err := yaml.Unmarshal(action.GetPatch(), &patchObj.Object); err != nil { return nil, err } <ins> patchObj.SetName(action.GetName()) </ins> err := o.tracker.Apply(gvr, patchObj, ns, action.PatchOptions) if err != nil { return nil, err

handled, configMap, err := reaction(action) assert.True(t, handled) if err != nil { <del> t.Errorf("Failed to create a resource with apply: %v", err) </del> <ins> t.Fatalf("Failed to create a resource with apply: %v", err) </ins> } cm := configMap.(*v1.ConfigMap) assert.Equal(t, cm.Data, map[string]string{"k": "v"}) } <ins> func TestApplyNoMeta(t *testing.T) { cmResource := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "configMaps"} scheme := runtime.NewScheme() scheme.AddKnownTypes(cmResource.GroupVersion(), &v1.ConfigMap{}) codecs := serializer.NewCodecFactory(scheme) o := NewFieldManagedObjectTracker(scheme, codecs.UniversalDecoder(), configMapTypeConverter(scheme)) reaction := ObjectReaction(o) patch := []byte(`{"apiVersion": "v1", "kind": "ConfigMap", "data": {"k": "v"}}`) action := NewPatchActionWithOptions(cmResource, "default", "cm-1", types.ApplyPatchType, patch, metav1.PatchOptions{FieldManager: "test-manager"}) handled, configMap, err := reaction(action) assert.True(t, handled) if err != nil { t.Fatalf("Failed to create a resource with apply: %v", err) } cm := configMap.(*v1.ConfigMap) assert.Equal(t, "cm-1", cm.Name) assert.Equal(t, map[string]string{"k": "v"}, cm.Data) } </ins> func TestApplyUpdateMultipleFieldManagers(t *testing.T) { cmResource := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "configMaps"} scheme := runtime.NewScheme()