Weekly GitHub Report for Kubernetes: February 17, 2025 - February 24, 2025
Weekly GitHub Report for Kubernetes
Thank you for subscribing to our weekly newsletter! Each week, we deliver a comprehensive summary of your GitHub project's latest activity right to your inbox, including an overview of your project's issues, pull requests, contributors, and commit activity.
Table of Contents
I. News
1.1 Recent Version Releases:
The current version of this repository is v1.32.2
1.2 Version Information:
The version release, created on February 12, 2025, introduces key updates and changes to Kubernetes, with detailed information available in the linked changelog. Notable highlights or trends from this release can be further explored through the Kubernetes announcement forum and the changelog documentation.
II. Issues
2.1 Top 5 Active Issues:
We consider active issues to be issues that that have been commented on most frequently within the last week. Bot comments are omitted.
-
unauthenticated requests is not denied, neither api-server fail to run with anonymous-auth=false and AuthenticationConfiguration.Anonymous is non-nil in api-server: This issue highlights a problem with the Kubernetes API server where unauthenticated requests are not denied, even when the
--anonymous-auth=false
flag is set, and theAuthenticationConfiguration.Anonymous
is enabled, which contradicts the expected behavior as per the documentation. The user expected the API server to fail to start or deny unauthenticated requests under these conditions, but instead, the server runs and responds to requests from anonymous users.- The comments discuss the inability to reproduce the issue in certain environments, identify the problem as specific to Kubernetes version 1.32, and trace the bug to a specific commit. A fix was identified in a later commit, and there is a discussion about backporting this fix to version 1.32. The conversation also touches on the potential for the issue to recur if certain code changes are made again.
- Number of comments this week: 19
-
SSA with force conflicts should update Service: This issue describes a problem with a Kubernetes controller that uses Server-Side Apply (SSA) to manage a Service resource, where a user-induced change to the Service causes the controller's attempt to correct the state to be rejected by the API server due to a conflict. The expected behavior is that the controller's SSA request, configured to force conflicts, should automatically revert the Service to its desired state without errors, but this does not occur, leading to a manual correction requirement.
- The comments discuss the challenges of using client-side apply (CSA) versus server-side apply (SSA) for managing Kubernetes Services, highlighting issues with the
ports
field and the differences in how CSA and SSA handle map keys. Suggestions include using server-side apply exclusively or considering a PUT (replace) operation as a workaround, though concerns about managing cluster-set fields and memory footprint are raised. - Number of comments this week: 11
- The comments discuss the challenges of using client-side apply (CSA) versus server-side apply (SSA) for managing Kubernetes Services, highlighting issues with the
-
Migrate Kubelet codebase to contextual logging: This issue involves migrating the Kubelet codebase to support contextual logging, which is part of a broader effort to implement a Kubernetes enhancement proposal for structured logging. The migration process is detailed, involving directory-by-directory changes, and aims to minimize disruptions to other components while ensuring that non-contextual logging is phased out.
- The comments discuss the coordination and assignment of tasks among contributors, with some contributors expressing interest in working on specific parts of the migration. There is guidance on considering ongoing pull requests and the need for triage acceptance before proceeding. Contributors are encouraged to communicate and update each other on their progress to avoid conflicts and ensure efficient collaboration.
- Number of comments this week: 9
-
[FG:InPlacePodVerticalScaling] Emit a events when resize status changes: This issue is about implementing event emissions in the Kubelet to aid in debugging in-place pod resizing by reporting various resize status changes, such as when a resize is accepted, infeasible, deferred, completed, or encounters an error. The goal is to enhance the debugging process by providing detailed event logs that reflect the current state of resource resizing within Kubernetes pods.
- The comments discuss the assignment and interest in the issue, the status of related pull requests, and the urgency due to an upcoming code freeze. There is debate over the usefulness of events for debugging, with some suggesting they could cause issues, while others argue for their necessity. The milestone for the issue has been adjusted between versions 1.32 and 1.33, and there is a suggestion to prioritize the issue differently. Some comments support the addition of specific events, like the resize completed event, to improve user experience and documentation.
- Number of comments this week: 7
-
NodeResourcesBalancedAllocation cause too many pods scheduled to the same node: This issue addresses a problem with the Kubernetes scheduler plugin, NodeResourcesBalancedAllocation, which assigns different scores to nodes when a pod's resource request is empty, potentially leading to an uneven distribution of pods across nodes. The expected behavior is for the plugin to return a score of zero when a pod request is zero, to prevent too many pods from being scheduled on the same node, which can cause resource contention and inefficiencies.
- The comments discuss various solutions, including reverting to previous logic, introducing a pod-count-based scoring system, and emphasizing the importance of users setting explicit resource requests for pods. There is a consensus on returning a score of zero for pods with no resource requests to allow other plugins to influence scheduling, while also considering the potential impact on scheduling performance and behavior.
- Number of comments this week: 7
2.2 Top 5 Stale Issues:
We consider stale issues to be issues that has had no activity within the last 30 days. The team should work together to get these issues resolved and closed as soon as possible.
As of our latest update, there are no stale issues for the project this week.
2.3 Open Issues
This section lists, groups, and then summarizes issues that were created within the last week in the repository.
Issues Opened This Week: 35
Summarized Issues:
- Intermittent "Forbidden" Error in Kubernetes: This issue involves an intermittent "Forbidden" error encountered when running the
kubectl get pods
command after restarting a master node in a Kubernetes cluster. The error is due to the user lacking necessary permissions to list pods in the specified namespace, potentially caused by incomplete loading or binding of ClusterRole and ClusterRoleBinding resources during the restart process.
- Security Risk of Exposing SELinux Labels: This issue concerns the potential security risk of exposing SELinux labels on Pods through KCM metrics as part of the implementation of KEP 1710. It raises concerns about whether this could inadvertently leak sensitive information when Pods using shared volumes conflict.
- Static Analysis for Consistent Tagging in LIST Type Definitions: This issue involves implementing static analysis to ensure consistent tagging of fields in LIST type definitions, such as
PersistentVolumeList
, within the Kubernetes project. This is to support response streaming as outlined in a specific enhancement proposal.
- APIServer Livez Interface Failure: This issue addresses the concern that the livez interface of the APIServer, when used as a static pod, fails and causes the pod to restart due to decreased etcd processing efficiency during high disk I/O usage. It suggests that the livez interface should not check the status of etcd to prevent unnecessary restarts.
- Race Condition in API Discovery for CRDs: This issue highlights a race condition in Kubernetes where the API discovery for Custom Resource Definitions (CRDs) can temporarily serve data that is inconsistent with the underlying storage. This is due to a lack of synchronization between the
crdHandler
andDiscoveryController
, resulting in mismatched storage versions during CRD updates.
- Pod Deletion Issue with SubPath Volumes on Alibaba Cloud: This issue involves a problem with Kubernetes where a Pod using subPath volumes cannot be deleted due to errors in cleaning up subPath mounts. This occurs particularly when the subPath is removed remotely on Alibaba Cloud's object storage, leading to the Pod being stuck in a "Completed" or "Terminating" state.
- Failing Test in "kubetest2.Up" for EC2 Conformance: This issue pertains to a failing test in the Kubernetes project, specifically the "kubetest2.Up" test within the "master-informing" job for EC2 conformance. It has been failing since February 18, 2025, due to an instance not running, and it is suspected to be an infrastructure issue related to the cloud provider.
- Pod Not Reclaimed by GC Controller After Job Deletion: This issue describes a bug where a pod created by a Kubernetes job remains in the Completed state and is not reclaimed by the garbage collection (GC) controller after the job is deleted. No related logs are being printed by the GC controller.
- Flaking Test in "Kubectl client Simple pod should contain last line of the log": This issue pertains to a flaking test in the Kubernetes project, specifically within the sig-cli group. The "Kubectl client Simple pod should contain last line of the log" test is intermittently failing due to an error related to the creation of an fsnotify watcher, likely caused by exceeding the limit of open files.
- Unable to Update
spec.revisionHistoryLimit
in StatefulSet: This issue highlights a problem where users are unable to update thespec.revisionHistoryLimit
field of a StatefulSet (STS) in Kubernetes. Despite expecting such modifications to be allowed, it appears that a previous solution to this issue may have regressed.
- Enhancing
deferredResponseWriter
for Chunked Gzip Encoding: This issue involves enhancing thedeferredResponseWriter
in the Kubernetes project to support chunked gzip encoding by buffering responses until they reach a specified size threshold or the connection is closed. This enables accurate gzip encoding decisions for multiple write calls, necessary for implementing response streaming as outlined in the related Kubernetes enhancement proposal.
- Flaky Test in "Subpath Container restart": This issue pertains to a flaky test in the Kubernetes project, specifically within the sig-storage group. The "Subpath Container restart" test intermittently fails to verify that a container can restart successfully after configmaps are modified, due to a timeout while waiting for the container to restart.
- Need for New Mechanism in Kubelet's End-to-End Tests for Private Image Pulls: This issue highlights the need for a new mechanism in Kubelet's end-to-end tests for private image pulls. The current tests rely on hardcoded credentials to a public repository that is being decommissioned, which will cause the tests to fail permanently unless restructured to avoid dependency on external infrastructure.
- Ambiguous Error Messages from
OwnerReferencesPermissionEnforcement
Plugin: This issue highlights the complexity of debugging due to ambiguous error messages from theOwnerReferencesPermissionEnforcement
plugin in Kubernetes. It suggests that the error message should explicitly include the service account name to clarify which account lacks the necessary permissions, simplifying the debugging process.
- Restart Policy for Static Pods Should Always Be "Always": This issue addresses the concern that the restart policy for static pods in Kubernetes should always be set to "always" because other policies are not logical given that the Kubelet does not persistently track the status of static pods. It suggests that the restart policy should be automatically overwritten to "always" when static pods are parsed.
- Conflict Between Client-Side and Server-Side Apply Methods: This issue involves a Kubernetes controller using Server-Side Apply (SSA) with force conflicts to manage a Service resource. A user-induced change to the Service was not reverted by the controller due to an API server rejection, highlighting a conflict between client-side and server-side apply methods.
- Incorrect Validation for Hugepage Volume Mounts: This issue highlights a problem in Kubernetes where the validation for hugepage volume mounts in containers is incorrectly checking for corresponding hugepage resource requests across all containers in a pod. This leads to potential deployment of non-functional hugepage configurations without visible errors to the user.
- Clearml Sessions IP Address Mismatch in Kubernetes: This issue involves a problem with Clearml sessions in a Kubernetes environment where different IP addresses using the same port lead to SSH login mismatches and incorrect routing of requests between LLM inference services. This is potentially due to NodePort handling, which contradicts expected Kubernetes behavior.
- CSI Volume Remount Failure on Windows: This issue involves a problem where the CSI volume fails to remount on Windows after the kubelet exits abnormally. This is due to unreliable logic in detecting whether the volume is a mount point, and suggests using a more reliable method as recommended by Windows documentation.
- Enhancement to Kubernetes Node API for Additional Metrics: This issue highlights the need for an enhancement to the Kubernetes node API to include additional detailed statistics, such as "steal time" and "iowait," in the output of the "kubectl top node" command. The current command only displays user and system CPU usage, which can be misleading in virtualized environments.
- Simplifying the Watch Cache in Kubernetes: This issue proposes simplifying the watch cache in a Kubernetes project by removing the
WaitUntilFreshAndGet
function and usingWaitUntilFreshAndList
withstore.ListPrefix
for non-recursive List and Get operations. The performance differences that originally necessitated separate code paths have been mitigated by the introduction of Btree.
- Random Order of Secret Keys in
kubectl describe secret
: This issue describes a problem where thekubectl describe secret {your-secret}
command outputs secret keys in a random order instead of a stable order. This can be reproduced by running the command multiple times and observing the inconsistent order of keys.
- Kube-apiserver Bug with
--anonymous-auth=false
: This issue highlights a problem in Kubernetes version 1.32.2 where the kube-apiserver does not fail to start or deny unauthenticated requests when the--anonymous-auth=false
flag is set alongside anAuthenticationConfiguration
that enables anonymous access. This indicates a bug that was introduced in a specific commit and later fixed in a subsequent version.
- Separating TestPolicyAdmission Integration Test for v1beta1: This issue addresses the need to separate the TestPolicyAdmission integration test for v1beta1 from v1, as the v1beta1 version will be deprecated in Kubernetes 1.34. It requires testing independently with an apiserver configured to emulate version 1.33.
- Failure of AWS Scale Tests for Kubernetes: This issue pertains to the failure of AWS scale tests for Kubernetes, specifically the CL2 load tests on AWS. These have been failing since February 18th due to an inability to communicate with the APIServer, resulting in validation errors when attempting to ensure that 5,000 nodes are operational.
removeOldestN
Function Fails to Delete Containers: This issue highlights a problem with theremoveOldestN
function in the Kubernetes project, where it fails to ensure that containers are completely deleted. This leads to errors such as "rpc error: code = Unavailable" and potentially causes the containerd service to panic due to exceeding a 10,000-thread limit.
- Adding
ExcludedNamespace
Filter to Client-Go List API: This issue is about adding anExcludedNamespace(namespaces []string)
filter to the client-go List API in Kubernetes. This allows users to exclude specific namespaces when listing resources, similar to existing functionality, to enhance flexibility in resource querying.
- Failing Tests in "Pod InPlace Resize Container" Feature: This issue pertains to failing tests in the Kubernetes e2e suite related to the "Pod InPlace Resize Container" feature. It specifically concerns the inability to decrease memory limits without the "RestartContainer" resize policy, causing failures in the master-blocking job since February 21, 2025.
- Failing Unit Test
TestUnsafeConversions
Due to Golang Change: This issue reports a failing unit test,TestUnsafeConversions
, in the Kubernetes project due to a recent change in Golang that introduces a panic whenAllocsPerRun
is called during parallel tests. This can be resolved by removing parallel executions whereAllocsPerRun
is used.
- Scalability Tests on etcd v3.6 Release Candidate: This issue involves conducting scalability tests on the etcd v3.6 release candidate to ensure its compatibility and performance with Kubernetes 1.33. It involves documenting the process and considering the timeline differences between the Kubernetes code freeze and the etcd release schedule.
- Test Failures for nfacct Component on s390x Architecture: This issue involves addressing test failures for the nfacct component on the s390x architecture by proposing the generation of custom test data to accommodate the big-endian format. The current test data is structured for little-endian systems, and seeks feedback on whether modifying test data per architecture is acceptable.
- Incorrect Usage of Testing Methods in Golang Tests: This issue addresses the problem of incorrect usage of certain testing methods, such as
require
from thetestify
framework, within goroutines in Golang tests. This is not allowed and results in warnings from the vet tool, necessitating a fix across various modules and submodules.
- Rebuilding kube-addon-manager Image Due to Typo Fix: This issue involves the need to rebuild the kube-addon-manager image to incorporate a fix for a typo in a function name within the kube-addons.sh script. The current version 9.1.7 still attempts to call the incorrect function, and attempts to build a new image are hindered by 404 errors when accessing Debian package repositories.
- Migrating Deprecated ExtractCommentTags to ExtractFunctionStyleCommentTags: This issue involves migrating 45 instances of the deprecated ExtractCommentTags to the preferred ExtractFunctionStyleCommentTags within the Kubernetes project. This is part of the Declarative Validation update.
- Failure in
update-codegen
Process Due to Missing Packages: This issue involves a failure in theupdate-codegen
process when running themake update
command in a Kubernetes project. This is due to missing packages in the main modulek8s.io/code-generator
, resulting in multiple errors related to the absence of specific example API packages.
2.4 Closed Issues
This section lists, groups, and then summarizes issues that were closed within the last week in the repository. This section also links the associated pull requests if applicable.
Issues Closed This Week: 27
Summarized Issues:
- Kubernetes CronJob Management: The need for a feature in Kubernetes to limit the number of active jobs created by a CronJob is discussed, as the current concurrencyPolicy is insufficient. This leads to performance issues when a large number of pending jobs flood the job queue, suggesting a variable like maxJobCount to manage this more effectively.
- Kubernetes Pod Storage and Resource Management: Issues with Kubernetes pods exceeding ephemeral storage limits and the rationale behind using a Pod's request resource for scaling indicators are discussed. These issues highlight potential misconfigurations in kubelet and suggest that using limits could provide clearer thresholds for scaling.
- Kubernetes Documentation and Command Enhancements: Updating Kubernetes documentation for Pod lifecycle tests and enhancing the
kubectl explain
command to include configuration APIs are discussed. These efforts aim to improve user understanding and access to configuration details directly through commands.
- Kubernetes Image and Registry Handling: Problems with Kubernetes pods failing to start due to image tagging issues and the need for a separate KEP for DRAAdminAccess are discussed. These issues highlight the importance of correct image verification and independent feature tracking for stability.
- Kubernetes Device Plugin and Tracing: Adding trace records to the device-plugin process and addressing the need for passing metadata without modifying the API are discussed. These issues consider alternative solutions like Dynamic Resource Allocation and OpenTelemetry's Baggage for tracing and logging.
- Kubernetes Event Naming and IPv6 Compatibility: Problems with event naming conventions affecting IPv6 addresses and discrepancies in IP address ordering in dual-stack environments are discussed. These issues propose solutions to ensure compatibility with existing validation rules and expected behavior.
- Kubernetes Session and Network Connectivity: Issues with
kubectl exec
sessions disconnecting in AKS environments and pod connectivity problems in a Calico network are discussed. These issues highlight the need for configuration adjustments to maintain session stability and network connectivity.
- Kubernetes Scheduling and Test Flakiness: Problems with scheduling performance and flaky tests in the Kubernetes project are discussed. These issues involve enhancing scheduling plugins and addressing test failures due to unexpected conditions or race conditions.
- Kubernetes Go Compatibility and API Server Testing: The need to update Kubernetes for Go 1.23 standard library changes and implementing tests for the
deferredResponseWriter
are discussed. These issues require code adjustments and test validation to ensure compatibility and proper response handling.
- Kubernetes Scheduler and Kubelet Issues: Problems with the Kubernetes scheduler treating "Pending" status as an error and kubelet failing to create server CSRs are discussed. These issues highlight the need for correct status handling and configuration updates to prevent blocking CSR creation.
- Kubernetes Controller and Log Formatting: Issues with the SELinuxWarning controller in containerized environments and log formatting in the Windows kube-proxy component are discussed. These issues require access to configuration files and correct log formatting to ensure functionality and debugging.
- Kubernetes Test Failures and Environment Variables: Problems with failing tests due to missing environment variables and test infrastructure changes are discussed. These issues highlight the importance of environment variable presets for test success and the need for manual configuration adjustments.
- Kubernetes AMI Support and Pod Communication: Requests for AMD processor support in Amazon EKS AMIs and pod communication issues on the same node are discussed. These issues emphasize cost benefits and the need for urgent assistance to resolve connectivity problems.
- Kubernetes Stateful Set Scaling and Test Panics: A failing test related to scaling stateful sets and a panic due to an assertion in a goroutine are discussed. These issues suggest error handling improvements to prevent test panics and ensure predictable scaling order.
2.5 Issue Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed issues that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed issues from the past week.
III. Pull Requests
3.1 Open Pull Requests
This section provides a summary of pull requests that were opened in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. All other pull requests are grouped based on similar characteristics for easier analysis.
Pull Requests Opened This Week: 80
Key Open Pull Requests
1. KEP-5073: Declarative Validation: Add validation generator: This pull request introduces a new feature for the Kubernetes project by implementing a declarative validation generator called "validation-gen," which is designed to produce validation code based on specific tags in types.go
files, includes a set of core validation plugins, and provides test infrastructure to ensure the correct generation of validation code for various conditions.
- URL: pull/130349
- Merged: No
- Associated Commits: 5c1b9, 48165, 91f58, d2d1a, ca7f9, 9605f, ecda7, 9262b, e13d3, 9fab5, 1838a, ff9c1, 55f09
2. KEP-3619: Promote SupplementalGroupsPolicy feature to Beta: This pull request aims to promote the SupplementalGroupsPolicy feature to Beta status in Kubernetes, ensuring that kubelet now rejects pods with SupplementalGroupsPolicy=Strict
when scheduled to nodes that do not support the feature, and includes updates to end-to-end tests to verify this behavior.
- URL: pull/130210
- Merged: No
3. [FG:PodObservedGenerationTracking] Kubelet sets pod status.observedGeneration
when updating the pod status: This pull request introduces a new feature to the Kubernetes project where the kubelet updates the status.observedGeneration
field in the pod status to reflect the latest metadata.generation
it has observed, as part of the PodObservedGenerationTracking
feature gate, and includes updates to the pod status API to support this functionality.
- URL: pull/130352
- Merged: No
Other Open Pull Requests
- Flaky Tests and Bug Fixes: This topic covers several pull requests aimed at addressing flaky tests and bugs in the Kubernetes project. The pull requests include fixes for flaky unit tests on Windows, storage version migrator test suite improvements, and a bug fix for kubelet volume unmounting issues. These efforts enhance the reliability and stability of the Kubernetes testing and runtime environments.
- Code Cleanup and Refactoring: Multiple pull requests focus on cleaning up and refactoring the Kubernetes codebase. These include migrating components to contextual logging, removing outdated comments, and refactoring resource allocation management. Such changes aim to improve code maintainability and prepare for future enhancements.
- Feature Enhancements: Several pull requests introduce new features to the Kubernetes project, such as a new v1beta1 API for LeaseCandidate and a feature for validating admin access based on namespace labels. These enhancements aim to expand Kubernetes' capabilities and improve its usability for administrators.
- API and Configuration Updates: This topic includes pull requests that update APIs and configurations, such as the removal of the
apidiscovery.k8s.io/v2beta1
API group and modifications to the OpenAPI verification process. These updates ensure that Kubernetes remains aligned with its deprecation policies and user preferences.
- Logging Improvements: Several pull requests focus on improving logging within Kubernetes components, such as the Topology Manager and kubeadm. These improvements aim to enhance the robustness and readability of logs, facilitating easier debugging and monitoring.
- Testing and Validation: Pull requests under this topic introduce new tests and validation improvements, such as tests for encoding collections in JSON and validation of job completion updates. These efforts aim to ensure the correctness and reliability of Kubernetes features and components.
- Bug Fixes and Stability Improvements: This topic includes pull requests that address various bugs and stability issues, such as fixing the slow recursive permission change with FSGroup and ensuring predictable order in
kubectl describe secret
. These fixes contribute to a more stable and predictable Kubernetes environment.
- Documentation and Metric Updates: Pull requests in this category focus on documentation improvements and metric updates, such as fixing typos in docstrings and adding missing increments to metrics. These updates aim to enhance the clarity and accuracy of Kubernetes documentation and monitoring.
3.2 Closed Pull Requests
This section provides a summary of pull requests that were closed in the repository over the past week. The top three pull requests with the highest number of commits are highlighted as 'key' pull requests. All other pull requests are grouped based on similar characteristics for easier analysis.
Pull Requests Closed This Week: 98
Key Closed Pull Requests
1. DRA: CI test: This pull request involves a series of commits aimed at testing the continuous integration (CI) system for Kubernetes, including testing the kubetest2 tool for end-to-end node tests, addressing and then reverting a timeout configuration issue, and ultimately serves as a non-merged, experimental effort to validate CI processes.
- URL: pull/129976
- Merged: No
2. Canonicalize IPs written out by controllers: This pull request addresses the need for IP and CIDR validation improvements by ensuring that various Kubernetes controllers, including the Endpoints controller, EndpointSlice controller, EndpointSlice mirroring controller, and kubelet, consistently write out IP addresses in a canonical form, even when they receive IPs in invalid-but-parseable formats from their sources, as part of the implementation of KEP-4858.
- URL: pull/130101
- Merged: Yes
3. fix: Sweep and fix stat, lstat, evalsymlink usage for go1.23 on Windows: This pull request addresses a bug fix for the Kubernetes project by sweeping and correcting the usage of the stat
, lstat
, and evalsymlink
functions to ensure compatibility with Go 1.23 on Windows, resolving issue #129084, and includes several commits that update socket file detection logic, handle ModeIrregular in file permissions, and remove Unix-specific workarounds.
- URL: pull/130187
- Merged: Yes
Other Closed Pull Requests
- Retry Mechanisms for Netlink Calls: This topic addresses the addition of retry mechanisms to certain netlink calls within the Kubernetes project to handle cases where these calls fail with partial results. The pull requests aim to improve the reliability of operations such as
conntracker.ListEntries()
,conntracker.ClearEntries()
, andrunner.List()
, specifically targeting sporadic network issues under heavy load and fixing issue #129562.
- InPlacePodVerticalScaling Enhancements: These pull requests focus on supporting InPlacePodVerticalScaling for the Static CPU management policy and addressing bugs related to maintaining the qosClass as Guaranteed. They introduce interfaces and modify parameters to ensure that delay-sensitive services in Guaranteed QoS Class Pods are not adversely affected during CPU scaling operations.
- AlwaysPullImages Admission Plugin Bug Fix: This pull request addresses a bug in the Kubernetes AlwaysPullImages admission plugin by adding support for the ephemeralcontainers subresource. It ensures that ephemeral containers adhere to the imagePullPolicy of Always, which was previously not enforced.
- B-tree Structure Cloning for Pagination: This pull request introduces a feature to clone a B-tree structure to improve the efficiency of serving continuations used for pagination in the Kubernetes API server. It results in significant performance improvements in terms of reduced operation time, memory usage, and allocation counts across various store list operations.
- SELinux Controller End-to-End Tests: This pull request introduces end-to-end tests for the SELinux controller by updating existing SELinux tests to also verify the SELinux warning controller. It ensures that when the kubelet increments error or warning metrics, the SELinuxController emits corresponding events, while addressing a specific case where the controller reports a conflict due to differing SELinux labels with a recursive policy.
- Deprecation of v1 Endpoints API: This pull request updates the documentation and type registration to officially deprecate the v1 Endpoints API in favor of the EndpointSlice API. It ensures that the v1 Endpoints API remains fully supported and includes links to relevant Kubernetes Enhancement Proposals and documentation.
- Removal of Deprecated Cloud Provider Parameters: This pull request involves the removal of the deprecated
--cloud-provider
and--cloud-config
CLI parameters from the kube-apiserver. It also removes the generally available feature-gatesDisableCloudProviders
andDisableKubeletCloudCredentialProviders
, as part of a cleanup effort related to Kubernetes enhancements.
- Device Plugin Bug Fix: This pull request addresses a bug in the Kubernetes project by fixing the
ShouldResetExtendedResourceCapacity
method for the device plugin. It resolves an issue where thecheckpointdir
for thedevicemanager
was incorrectly set to the same directory as thesockdir
forkubelet
, leading to theListCheckpoints
method failing to distinguish between filenames and producing incorrect outputs.
- Pre-stop Hook Test Suites: This pull request involves the addition of comprehensive test suites designed to evaluate the behavior of the pre-stop hook as part of pod lifecycle event testing and documentation in the Kubernetes project, although it was not merged.
- Disable v2beta1 for Aggregated Discovery: This pull request aims to disable the v2beta1 version for aggregated discovery in the Kubernetes project, as it is set to be removed in version 1.33. It ensures that the handler paths do not serve v2beta1 and adds tests to confirm this change.
- Statefulset Controller Comment Update: This pull request aims to update an outdated comment in the statefulset controller of the Kubernetes project, as indicated by the title and the two commits made to the
stateful_set_control.go
file, although it was ultimately not merged.
- Scheduler Framework Bug Fix: This pull request addresses a bug in the Kubernetes scheduler framework by ensuring that it properly returns a Pending status. It specifically merges the UnschedulableAndUnresolvable and Pending states with an OR condition, as detailed in the commits linked to the pull request.
- AnyVolumeDataSource Feature Gate Promotion: This pull request promotes the
AnyVolumeDataSource
feature gate to General Availability (GA) in the Kubernetes project. It ensures compliance with the community's guidelines on feature gates and includes updates to the generated API code.
- TestConsistentReadFallback Execution Time Reduction: This pull request focuses on reducing the execution time of the
TestConsistentReadFallback
test in the Kubernetes project from 7.21 seconds to 0.38 seconds. It thereby improves the efficiency of the test suite.
- Kube-apiserver /flagz Endpoint Bug Fix: This pull request addresses a bug by ensuring that the kube-apiserver's /flagz endpoint correctly responds with the actual parsed flags. It is achieved by passing the same namedFlagSet to the Flagz interface as used by the apiserver command, and includes updates to the integration test to verify this behavior, thereby fixing issue #129994.
- SIG Network Tests Cleanup: This pull request involves a cleanup in the SIG Network tests by replacing the use of ReplicationControllers with Deployments in the network-related end-to-end tests. It enhances the clarity of the test code through direct API calls and facilitates easier live debugging, partially addressing issue #119021.
- Automated Cherry-pick of /metrics/slis Endpoint Change: These pull requests are automated cherry-picks of a previous change (#128430) onto the release-1.29, release-1.28, and release-1.27 branches. They involve modifying the installation process of the handler for the
/metrics/slis
endpoint by removing the use ofsync.Once
, and include additional test cases to ensure the functionality is correctly implemented.
- Memory Limits Decrease Prevention Feature: This pull request introduces a feature that prevents the decrease of memory limits for Kubernetes pods unless the memory resize restart policy is set to
RestartContainer
. It also makes the container resize policy immutable, aligning with the Kubernetes Enhancement Proposal for in-place pod resource updates.
- WaitUntilFreshAndList Function Enhancement: This pull request aims to enhance the Kubernetes project by passing
storage.ListOptions
to theWaitUntilFreshAndList
function and returning the item count. It will be beneficial for future implementations involving pagination that require the use of the Limit argument.
- Test PR Submission: This pull request, titled "test PR," appears to be a preliminary or experimental submission to the Kubernetes project on GitHub. It contains two commits with messages "from richa" and "test," but it has not been merged, indicating it might be a work in progress or a test submission for review and feedback.
- LeaseCandidate Strategy Gate Comment Removal: This pull request addresses a bug by removing an incorrect gate comment related to the LeaseCandidate strategy in the Kubernetes project. It clarifies that the strategy is gated only for the Lease object and not for LeaseCandidate, as the entire LeaseCandidate depends on the feature rather than just one field.
- Go Version Update for Kubernetes Releases: This pull request updates the publishing rules for Kubernetes releases 1.29, 1.30, and 1.31 to use Go version 1.23.6. It removes the configuration for release 1.28 due to its end of life.
- NewInformerWithOptions Function Replacement: This pull request involves a cleanup task where the deprecated
NewIndexerInformer
function in the Kubernetes cache package is replaced with theNewInformerWithOptions
function. It ensures code modernization and maintainability.
- Garbage Collector Efficiency Improvement: This pull request addresses a bug in the Kubernetes garbage collector by prioritizing access to the local cache to improve the efficiency of building the dependency graph. It is crucial for reducing the time taken for the garbage collector to become ready and preventing the blocking of cascading deletes when the kube-controller-manager starts.
- Rollback Function Refactor: This pull request aims to refactor the 'rollback' function in the Kubernetes project by adding a parameter 'rollbackTo' of type *extensions.RollbackConfig. It streamlines the process by eliminating the redundant call to the 'getRollbackTo' method within the 'rollback' method, thereby optimizing the logic for checking and executing rollbacks based on the "deprecated.deployment.rollback.to" annotation.
- Typo Fixes in Codebase: This pull request involves a cleanup task that addresses multiple typos in the Kubernetes codebase to improve code readability and documentation accuracy. It specifically fixes issue #119667, without introducing any functional changes.
- Jenkins Directory Cleanup: This pull request involves cleaning up the Jenkins directory by removing unused code and relocating necessary configuration files to a new directory. It includes plans for subsequent changes in the test infrastructure to fully transition to the new path and eliminate the Jenkins directory entirely.
- Node Labels in Pod Environment Variables: This pull request aims to introduce a feature that allows node labels, such as
kubernetes.io/rack=7-401-H-17
, to be inserted into a pod's environment variables by using a specific pod annotation. It enhances the configurability and dynamic environment setup of Kubernetes pods.
- Pod Resize Status Change Events: This pull request introduces a new feature to the Kubernetes project by adding events that trigger when the resize status of a pod changes. It addresses issue #127172, although it has not been merged yet.
- Non-namespaced Resources Bug Fix: This pull request addresses a bug by ensuring that non-namespaced resources are correctly referenced in the Kubernetes project. It is indicated by the commit message and the linked issue it aims to fix.
- Base64 Literal Flag for Secret Creation: This pull request introduces a new
--from-base64-literal
flag to thekubectl create secret generic
command. It enables users to input base64-encoded literal values directly when creating secrets, thereby simplifying the process and enhancing the flexibility of secret creation in Kubernetes.
- Error Checking in InPlacePodVerticalScaling Tests: This pull request addresses the need for improved error checking in tests by adding assertions to verify that specific errors occur. It is part of a cleanup effort in the InPlacePodVerticalScaling feature of the Kubernetes project.
- IP Address Canonicalization Requirement: This pull request requires the canonicalization of IP addresses in NetworkDeviceData to ensure stricter validation. It prevents the use of non-standard or non-canonical IP values in new APIs, particularly when utilizing the Alpha DRAResourceClaimDeviceStatus feature.
- Authorization for New Kubelet Endpoints: This pull request requires authorization for all new Kubelet endpoints by renaming handler installation methods to clarify their authentication status. It documents the policy in comments, ensuring that new handlers are not exposed on the read-only port, as they are not subject to backward compatibility requirements.
- Go 1.23 Mount Point Parsing Bug Fix: This pull request addresses a bug by updating the Kubernetes codebase to accommodate a behavior change in Go 1.23 related to mount point parsing on Windows. It ensures that paths mounted as disks or SMB file shares are correctly identified as non-regular files rather than symbolic links, and includes the removal of an unused function,
getAllParentLinks
, while also advising CSI driver developers to correctly interpret the return value ofIsLikelyNotMountPoint
.
- AppArmorFields Feature-gate Removal: This pull request involves the removal of the generally available feature-gate
AppArmorFields
from the Kubernetes project as part of a cleanup effort. It follows up on a previous pull request and has been successfully merged.
- Queueing Hint for Volume Attachments: This pull request introduces a new feature to the Kubernetes scheduler by adding a queueing hint for the deletion of volume attachments. It addresses issue #128347 and ensures more efficient handling of these operations.
- Event Object Name Bug Fix: This pull request addresses a bug in the Kubernetes project by ensuring that event objects are assigned valid names. It uses a base64 representation or a UUID when the referenced object name is not suitable for an event, thereby preventing failures in event creation.
- Aggregated Discovery v2beta1 Client-side Removal: This pull request involves the removal of client-side usage of the aggregated discovery v2beta1 type in the Kubernetes client-go library. It transitions to only query using
apidiscovery.k8s.io/v2
, with the server-side changes to be addressed in a separate pull request.
- HonorPVReclaimPolicy End-to-End Tests: This pull request adds additional end-to-end tests for the HonorPVReclaimPolicy feature in the Kubernetes project. It is part of a cleanup effort to enhance testing coverage and is linked to the Kubernetes enhancements issue #2644.
- Winsymlink Workaround Removal: This pull request aims to clean up the codebase by removing a workaround related to winsymlink for Go 1.23. It is contingent upon the completion and verification of tests associated with issue #129084 in the Kubernetes project.
- CRDValidationRatcheting Feature Gate Promotion: This pull request promotes the CRDValidationRatcheting feature gate to General Availability (GA) in Kubernetes version 1.33. It is part of the ongoing enhancements tracked in the Kubernetes Enhancement Proposal (KEP) 4008.
- Kube-proxy Memory Leak Fix Cherry-pick: This pull request involves an automated cherry-pick of a previous fix (#130032) addressing a potential memory leak in the kube-proxy component. It specifically targets clusters with high volumes of UDP workflows and has been successfully merged into the release-1.32 branch of the Kubernetes project.
- SELinux Translator for Controller: This pull request introduces a new SELinux translator to the Kubernetes controller, addressing the issue where the kube-controller-manager, often running in a container without access to the host's
/etc/selinux
, cannot read default SELinux options. It implements a customSELinuxOptionsToFileLabel
function that uses only the fields provided by the Pod and treats empty SELinux label components as incomparable, thereby fixing SELinuxWarningController defaults when running in a container.
- Kube-apiserver Loopback Client Certificate Validity Extension: This pull request extends the validity of the kube-apiserver's loopback client certificate from one year to 14 months. It aligns with Kubernetes' updated support lifecycle, ensuring consistency with the 14 months of standard support followed by 2 months of maintenance.
- Network-related End-to-End Tests Cleanup: This pull request involves a cleanup of network-related end-to-end tests by replacing ReplicationControllers with Deployments in the utility function StartServeHostnameService. It enhances the clarity of the test code through direct API calls and facilitates easier live debugging, as part of addressing issue #119021.
- OIDC and Anonymous Authentication Options Cleanup: This pull request aims to clean up the code by removing the
OIDCAuthenticationOptions.areFlagsConfigured
andAnonymousAuthenticationOptions.areFlagsSet
. It ensures that theAddFlags()
function does not mutate these options each time it is called, as part of a follow-up on a previous comment.
- NodeOSDistroIs Function Removal: This pull request involves a cleanup task that removes the
NodeOSDistroIs
function from thetest/e2e/framework/pod
in the Kubernetes project. It is part of a follow-up to issue #81245, with the intention of replacing it withframework.NodeOSDistroIs
once the related work is complete.
- WebSocket Translator PingPeriod Bug Fix: These pull requests address a bug by adding a PingPeriod for the WebSocket translator in the Kubernetes project to prevent proxy-induced connection closures due to inactivity. They ensure that ping data can be effectively delivered from the client to the runtime side even when the server responds with a pong without forwarding the data.
- Relaxed DNS Search Validation to Beta: This pull request promotes the Kubernetes Enhancement Proposal (KEP) 4427, which allows for relaxed DNS search validation by enabling Pod search domains to include a single dot or an underscore, to beta status.
- Flaky End-to-End Test Fix: This pull request addresses a flaky end-to-end test in the Kubernetes project by ensuring that the container is fully running before attempting to retrieve logs over websockets. The previous approach of waiting for the pod to be in the "Running" state was insufficient, potentially resolving issue #129955.
- Pod Resize Status Cache Refactor: This pull request involves refactoring the pod resize status cache out of the allocation state to prepare for separating the allocation manager from the status manager. It keeps pod resize status tracking within the status manager, as part of a cleanup effort in the Kubernetes project.
- deferredResponseWriter Test Addition: This pull request adds a test to validate the functionality of the
deferredResponseWriter
when handling multiple write calls. It addresses the issue tracked in https://github.com/kubernetes/kubernetes/issues/130168.
- Error Handling Enhancement with errors.Is and errors.As: This pull request aims to enhance error handling in the Kubernetes project by utilizing the
errors.Is
anderrors.As
functions to manage wrapped errors more effectively, although it was ultimately not merged.
- SchedulerCacheSize Comment Update: This pull request involves modifying the comment for the SchedulerCacheSize field in the Kubernetes project to reflect its planned removal in version 1.34, as part of a cleanup effort.
- Go Version Update for Release-1.31: This pull request updates the release-1.31 branch of the Kubernetes project to build with Go version 1.23.6. It is part of a cleanup effort and confirms that Kubernetes 1.31 is now built with this version of Go, addressing an issue referenced in the project's repository.
- Go Version Update for Release-1.30: This pull request updates the release-1.30 branch of the Kubernetes project to build with Go version 1.23.6. It requires a related pull request and promotion to pass continuous integration, and it introduces a user-facing change by announcing that Kubernetes 1.30 is now built with Go 1.23.
- Go Version Update for Release-1.29: This pull request updates the release-1.29 branch of the Kubernetes project to build with Go version 1.23.6. It requires a related pull request and promotion to pass continuous integration, and it introduces a user-facing change by announcing that Kubernetes 1.29 is now built with this version of Go.
- Kubeadm Panic Bug Fix: This pull request addresses a bug in the Kubernetes project by fixing a panic issue in kubeadm that occurs when no UpgradeConfiguration is found in the configuration file. It is detailed in the commit linked here: https://github.com/kubernetes/kubernetes/commit/9315ddbb650b99983c4a854cbfda8c880d6f3742.
- Conntrack Reconciler Metric Addition: This pull request introduces a new feature to the Kubernetes project by adding a metric,
kubeproxy_conntrack_reconciler_deleted_entries_total
. It allows users to track the cumulative number of conntrack flows deleted by the conntrack reconciler, enhancing the observability of network flow management within the kube-proxy component.
- Watch Failures Debugging Enhancement: This pull request addresses the issue of frequent watch failures in Kubernetes by adding additional logging information to help debug the flake related to issue #129779. It specifically targets problems where the watch closes before the UntilWithoutRetry timeout, as observed in both the ReplicaSet and deployment tests.
- Scheduler Plugins Cleanup: This pull request involves a cleanup task in the Kubernetes scheduler plugins by removing an unnecessary check for the number of nodes being zero. This check is already performed by the framework before calling the prescore function.
- kubectl --subresource Flag Promotion: This pull request promotes the
--subresource
flag inkubectl
to a stable status, marking it as a feature enhancement in the Kubernetes CLI. It includes a release note and a reference to the related Kubernetes Enhancement Proposal (KEP) for further documentation.
- Blackbox Tests for Continuations and Revision Lists: This pull request adds blackbox tests to the Kubernetes project to verify the behavior of continuations and exact revision lists. It specifically addresses the enhancement issue 4988 by testing various scenarios such as exact matches and limits, while also suggesting follow-up actions for white box tests and handling specific errors related to the watch cache.
- Gorilla Websockets Library Update: This pull request updates the
gorilla/websockets
library from version1.5.0
to the latest1.5.3
as a cleanup task in the Kubernetes project. It has been successfully merged.
- Windows Kube-proxy Log Formatting Improvement: This pull request introduces improved log formatting for Windows kube-proxy to address issues with unformatted logs that hinder debugging. It ensures logs now include detailed endpoint and policy information, thereby resolving issue #130265.
- Typographical Error Correction: This pull request addresses a minor typographical error by correcting the spelling of "optimitically" to "optimistically" in a frequently occurring log message within the Kubernetes project, as part of a cleanup effort.
- TestList Component Refactor: This pull request refactors the TestList component to enable testing of continuations and more precise resource versions. It facilitates future enhancements in pagination, as part of the Kubernetes project.
- ResourceClaim Device Status Flaky Test Fix: This pull request addresses a bug by fixing a flaky test related to the ResourceClaim device status in the Kubernetes project. The previous testing method failed to properly verify if a pod was scheduled and running, leading to issues with retrieving the node name and plugin, and instead implements the TestPod function to ensure the pod is scheduled before proceeding, thereby eliminating the need for the Eventually loop.
- NoopEndpointSlice Unit Test Fix: This pull request addresses a failing unit test in the Kubernetes project by fixing the
TestNoopEndpointSlice
for the winkernel proxier. It was necessary due to a nil pointer dereference caused by theEndpointSliceUpdate
function checking and logging the address type, as part of resolving issue #130149.
- PrintDryRunFiles Unit Test Fix: This pull request addresses a failing unit test in the Kubernetes project by modifying the
TestPrintDryRunFiles
function to ensure consistent file path formatting across Windows and Linux systems. It usesfilepath.ToSlash
to clean up file paths and remove unnecessary escaped slashes, thereby resolving an issue where the test output did not match the expected output on Windows.
- Staticpod Package Unit Test Fix: This pull request addresses the issue of failing unit tests for the
k8s.io/kubernetes/cmd/kubeadm/app/util/staticpod
package on Windows by fixing errors related to missing manifest files. It is part of the ongoing efforts to resolve issue #130149 in the Kubernetes project.
- local-up-cluster.sh Script Update: This pull request removes the
--cloud-provider
argument from thelocal-up-cluster.sh
script to ensure compatibility with changes in thekube-apiserver
. The argument was removed in a related update, preventing the script from failing to start the apiserver.
- Make Update Cleanup Task: This pull request addresses a cleanup task by running "make update" to ensure the master branch is up-to-date with the latest API changes. Some previous pull requests failed to execute this update, although it was ultimately not merged.
- Non-recursive List Functionality Bug Fix: This pull request addresses a bug by ensuring that the non-recursive list functionality also reads the RequestWatchProgress feature when the consistent list from cache is enabled, as part of the Kubernetes project.
- API Documentation Duplicate Words Fix: This pull request addresses the issue of duplicate words in the API documentation of the Kubernetes project. It specifically focuses on correcting these errors without modifying the test data files, and it has been successfully merged.
- Windows Kube-proxy Log Formatting Cherry-pick: These pull requests are automated cherry-picks of a previous change (#130266) aimed at improving the log formatting in the Windows kube-proxy component to enhance debugging. They provide more detailed and structured log entries, addressing issue #130265.
- TLS Client Random and Master Secrets Feature: This pull request introduces a feature that enables the writing of TLS client random and master secrets in the NSS key log format for debugging purposes. It is specifically when the debug level is set to 9 or higher, allowing developers to troubleshoot TLS-based connections in applications like kubectl or client-go by setting the SSLKEYLOGFILE environment variable and using tools like Wireshark to decrypt and analyze the traffic.
- Scheduler Data Race Fix: This pull request addresses a data race issue in the Kubernetes scheduler related to the "allWaitSchedulingPods" function, which was identified as a flake. It includes a fix to ensure proper synchronization and stability in the scheduling process.
- SelfSubjectReview Test Cleanup: This pull request addresses a cleanup task by fixing the SelfSubjectReview test to decouple beta and GA types from the same API server. It preemptively prevents test failures in version 1.34 and removes a hacky flag, as detailed in the commit message and further explained in the pull request body.
- GetPodList Error Handling Improvement: This pull request addresses an issue in the Kubernetes project by modifying the framework utility function GetPodList to return errors for upstream handling instead of handling them internally. It previously caused a panic when called from a polling loop, and updates all instances where the function is called to ensure proper error handling, thereby fixing issue #130159.
- ComponentFlagz Feature-gate Check Removal: This pull request addresses a bug by removing the unnecessary check for the ComponentFlagz feature-gate before populating
serverRunOptions.Flagz
in thecmd/kube-apiserver
. It ensures that theserverRunOptions.Flagz
is not set to nil and that the/flagz
endpoint responds correctly with parsed flag values when the ComponentFlagz feature-gate is enabled.
- TweakContainers Comment Fix: This pull request addresses a cleanup task by fixing a comment related to "TweakContainers" in the Kubernetes project. It is part of resolving an outstanding comment from a previous pull request, and it does not introduce any user-facing changes.
- Etcd Docker Image Build: This pull request involves building a Docker image for etcd version 3.6.0-rc.0 as a new feature in the Kubernetes project, and it has been successfully merged.
- NodeStatusReport Interval Revert: This pull request reverts a previous change that introduced a random interval to the nodeStatusReport interval in Kubernetes. It caused a regression in the kubelet by altering the behavior of status updates, leading to potential issues with certificate creation and other dependencies, and it is recommended to backport this revert to address the bug and regression identified in issue #130001.
- Contextual Logging Migration: This pull request aims to migrate the server to contextual logging as part of a cleanup effort related to issue #130069 in the Kubernetes project. It does not introduce any user-facing changes or additional documentation.
3.3 Pull Request Discussion Insights
This section will analyze the tone and sentiment of discussions within this project's open and closed pull requests that occurred within the past week. It aims to identify potentially heated exchanges and to maintain a constructive project environment.
Based on our analysis, there are no instances of toxic discussions in the project's open or closed pull requests from the past week.
IV. Contributors
4.1 Contributors
Active Contributors:
We consider an active contributor in this project to be any contributor who has made at least 1 commit, opened at least 1 issue, created at least 1 pull request, or made more than 2 comments in the last month.
If there are more than 10 active contributors, the list is truncated to the top 10 based on contribution metrics for better clarity.
Contributor | Commits | Pull Requests | Issues | Comments |
---|---|---|---|---|
liggitt | 11 | 9 | 1 | 244 |
pohly | 39 | 12 | 3 | 182 |
aojea | 10 | 7 | 2 | 172 |
bart0sh | 17 | 4 | 1 | 131 |
tallclair | 23 | 12 | 1 | 84 |
ffromani | 19 | 4 | 1 | 93 |
macsko | 4 | 3 | 0 | 104 |
googs1025 | 14 | 8 | 1 | 83 |
carlory | 34 | 20 | 0 | 38 |
Jefftree | 25 | 12 | 4 | 37 |
Access Last Week's Newsletter: