kubernetes changelogs since kubernetes | diffwithgpt
AI Summary
The code updates multiple YAML files to use the agnhost image version 2.54 instead of 2.53, likely to ensure compatibility with newer test scenarios or features. The change was made by modifying image references in test manifests and updating the version in the initImageConfigs function to reflect the new image tag.
Commit Log
test: bump agnhost image to 2.54 YAML files were patched with: sed -i -e 's;registry.k8s.io/e2e-test-images/agnhost:2...;registry.k8s.io/e2e-test-images/agnhost:2.54;' $(git grep -l agnhost:2 test/e2e/testing-manifests/ test/fixtures/) The test/images/kitten and test/images/nautilus base images are still on an older agnhost because updating those is better left to the owners.
AI Summary
The code removes a redundant Required validation check for IngressRules, allowing empty rule lists without error. This change likely improves flexibility by allowing Ingress resources without rules, but may introduce ambiguity in validation logic.
Commit Log
Remove redundant Required validation for IngressRules
AI Summary
The code updates the runtime converter to honor the IsZero() method for custom types, allowing them to be omitted during unstructured conversion. This change introduces support for types implementing IsZero() to be treated as zero values, aligning with the omitzero tag behavior.
Commit Log
Update runtime convertor to honor IsZero()
AI Summary
The code diff removes 'creationTimestamp': null from various test fixtures and JSON definitions across the Kubernetes project, likely to simplify test data and align with the absence of this field in actual runtime objects. This change may improve test consistency and reduce unnecessary data in test cases, but could potentially cause issues if any test relies on the presence of 'creationTimestamp' for validation or comparison.
Commit Log
Drop null creationTimestamp from test fixtures
AI Summary
The code updates the version of the structured-merge-diff dependency from v4.6.0 to v4.7.0 across multiple Go modules to add support for the 'omitzero' tag, which controls whether zero values are omitted during JSON encoding. This change introduces the 'omitzero' tag support, which is likely needed for compatibility with newer JSON encoding behaviors or to align with specific serialization requirements in the Kubernetes codebase.
Commit Log
bump structured-merge-diff to add omitzero support
AI Summary
The diff moves golangci-lint and its dependencies into a separate module in the hack/tools directory to better isolate tool dependencies and manage versions more precisely. This change uses Go 1.24's 'tools' directive instead of tools.go, which allows for more straightforward management of tool dependencies and avoids conflicts with other modules.
Commit Log
golangci-lint: move into hack/tools/golangci-lint The advantage is that it separates the dependencies of the different tools better. golangci-lint in particular has many dependencies and is sometimes sensitive to the exact version being used. This way, "go get" bumps up dependencies exactly as defined by the upstream golangci-lint module. It's not quite self-contained because logcheck as a Go plugin for golangci-lint must be built from the same dependencies. But it only adds one and does not change any of the others. While at it, the Go 1.24 "tools" directive gets used instead of the traditional tools.go approach.
AI Summary
The code updates golangci-lint configuration files to finish the migration to version 2, removing TODOs, reorganizing suppression rules, and adjusting path handling for better compatibility. It ensures that paths are resolved relative to the module (gomod) instead of using ../ prefixes, improving clarity and avoiding potential path resolution issues.
Commit Log
golangci-lint: finish migration to v2 This finishes the work started in https://github.com/kubernetes/kubernetes/pull/131113. Changes: - Remove TODOs for things that we don't have plans to fix. - Add issue for older TODO. - Reorganize and remove suppression rules so that the base check has no unused rules. - Document warn-unused, but don't enable it. - Remove disabling of statistics (they are useful) and ensure that they don't get the ERROR prefix. - Avoid ../ prefix in paths via `run.relative-path-mode: gomod`.
AI Summary
The diff updates golangci-lint to version 2 and adjusts configuration files to be compatible with the new version, including changes to linter rules and exclusions. It also includes minor code adjustments to suppress specific linter warnings in various files, such as adding nolint comments for stylecheck and staticcheck.
Commit Log
chore: bump golangci-lint to v2
AI Summary
The code fixes a typo in the word 'immediately' in multiple files across the Kubernetes project, correcting 'immediatedly' to 'immediately'. This change ensures consistency in documentation and API descriptions, particularly in the context of DaemonSet updates and surge behavior.
Commit Log
api: Fix typo in word "immediately" In v1beta2 apps types, "immediately" is misspelled as "immediatedly", this patch corrects that typo.
AI Summary
The code updates the ToUnstructured function to match the stdlib's omitempty and anonymous field behavior in JSON marshaling. It ensures that fields without a JSON tag name are handled correctly, and anonymous fields are treated as embedded structs.
Commit Log
Make ToUnstructured match stdlib omitempty and anonymous behavior
AI Summary
The code introduces special handling for updating a single ResourceSlice in a resource pool to improve efficiency by avoiding unnecessary deletion and recreation. This change ensures that when there is exactly one existing and one desired slice, the existing slice is updated directly instead of being deleted and recreated.
Commit Log
Introduce special handling for updates involving a single resource slice. Typically, a single DRA driver uses only one ResourceSlice per resource pool. Currently, the ResourceSliceController updates this slice by deleting and recreating it when devices are added or removed. For this common single-slice-per-pool scenario, we can improve efficiency by directly updating the existing ResourceSlice instead.
AI Summary
The code adds unit tests for JWT authentication with CEL expressions that access deeply nested claims in Kubernetes' OIDC implementation. The tests cover success cases, optional claim handling, and failure scenarios where nested claims are missing or invalid.
Commit Log
jwt: add unit tests for using CEL with deeply nested claims
AI Summary
The code change relaxes the validation of the `--service-account-signing-endpoint` to allow relative paths when using an external signer. It modifies the regex pattern to only validate abstract socket names when the endpoint is prefixed with '@', removing the filesystem path validation.
Commit Log
Relax external signer path validation to allow relative paths
AI Summary
The code adds a comment explaining that the scheduler does not measure all plugin executions for performance reasons, instead sampling a percentage of cycles. The comment clarifies the use of a random sampling mechanism to select which scheduling cycles are monitored.
Commit Log
Add comment explaining the metric sampling logic for plugin execution metrics I have just spent some time finding the change that introduced this and reading the discussion in the relevant PR. I assume this comment could save some time for other people new to this code
AI Summary
The code change disables disk size checking in the NeedResize function by removing the logic that compares device size with filesystem size. This change likely aims to simplify the resize logic or address specific edge cases where disk size checks were causing issues.
Commit Log
Disable disk size checking when calling NeedsResize function
AI Summary
The code adds test cases for comparing complex structs in CEL and fixes an equality bug where struct fields marked as omitempty are not handled correctly when comparing unstructured objects. The fix ensures that when comparing unstructured objects, missing fields are properly handled, preventing incorrect equality checks when some fields are nil.
Commit Log
Fix CEL equality bug for structs will nil field not marked as omitempty
AI Summary
The code implements a blue-green deployment strategy using Kubernetes readiness gates and services to ensure zero downtime during deployment. It creates two pods (blue and green), sets readiness gates, and patches their status to control traffic routing through the service.
Commit Log
e2e network: blue green deployments Use Pod Readiness Gates and Services to implement blue green deployment strategies by setting the corresponding readines gate to influence the service traffic. Change-Id: I23e3b9a0440014f48a4612685055565fd8dff5ec
AI Summary
The code refactors the CEL evaluation to replace unstructured and map[string]any with traits.Mapper, enabling support for distributed claims in CEL expressions. This change introduces a new type, traits.Mapper, and modifies the evaluation logic to use a lazy MapValue for claims and user info, which allows for more flexible and efficient evaluation of CEL expressions. Potential risks include compatibility issues with existing code that relies on unstructured.Unstructured, as well as the need to ensure that all CEL expressions are compatible with the new Mapper interface.
Commit Log
jwt: refactor CEL eval to drop unstructured and map[string]any This prepares us to add support for distributed claims support in CEL expressions.
AI Summary
The code introduces a lazy reflective CEL object wrapper to enable conversion of Kubernetes objects to CEL values using reflection, supporting both typed and unstructured data. The implementation includes comprehensive tests to ensure correct behavior for various data types, including structs, slices, maps, pointers, and special Kubernetes types like time and duration. The wrapper handles type conversion, equality checks, and CEL expression evaluation while maintaining compatibility with Kubernetes API schemas.
Commit Log
Add lazy reflective CEL object wrapper
AI Summary
The commit updates references from 'ResourceClass' to 'DeviceClass' in documentation and example files to align with the correct terminology. It also adds a sleep command and sets terminationGracePeriodSeconds to 0 in pod manifests to keep the pod running longer for better demonstration of claim lifecycle. This change improves clarity and ensures the test examples accurately reflect the intended behavior of device class claims.
Commit Log
DRA test: update examples Some more out-dated reference to resource class. Keeping the pod running is better for demonstrating the lifecycle of claims because it is actually possible to see a claim in the allocated state.
AI Summary
The commit adds 'sunnylovestiramisu' as a reviewer in the OWNERS_ALIASES file. This change is likely intended to grant the user review permissions for specific files or directories in the Kubernetes project.
Commit Log
Add sunnylovestiramisu as Reviewer
AI Summary
The code checks if IPv6 is globally enabled by verifying the existence of the /proc/net/if_inet6 file. This prevents kube-proxy from attempting to use IPv6 when it is not supported by the kernel, avoiding potential errors.
Commit Log
kube-proxy should check global IPv6 enablement IPv6 should also be checked if it is globally enabled. On nftables, today this is hardcoded, so if a Linux Kernel disables IPv6 during its boot or doesn't have IPv6 compiled, it will still try to use IPv6, which can lead to some unexpected errors. This change verifies if IPv6 is enabled by checking if the IPv6 network interfaces proc file is available
AI Summary
The code replaces custom temporary directory setup functions with the standard testing.TempDir function to simplify test setup and cleanup. This change improves test reliability by using the built-in Go testing framework's TempDir, which handles directory creation and cleanup automatically. Potential risks include compatibility issues if other parts of the codebase still rely on the old SetupTempDir function for specific behavior.
Commit Log
use testing.TempDir and delete helper function
AI Summary
The code fixes a typo in the test function name 'TestValidateServcieAccountTokenSigningConfig' by correcting it to 'TestValidateServiceAccountTokenSigningConfig'. This change ensures the test function is properly recognized and executed, improving code correctness and maintainability.
Commit Log
Fix typo in service account config test.
AI Summary
The code refactors and simplifies type handling functions to better manage aliasing and pointerness in Go types, improving consistency and clarity. Functions like `nativeType` and `nonPointer` replace older ones like `realType` and `unaliasType` to provide more predictable behavior when resolving type definitions. This change aims to avoid inconsistencies in type resolution, especially when dealing with typedefs and pointers, which are critical for validation logic in Kubernetes.
Commit Log
Retool validator utils realType and unaliasType Previous commits focused on checking for pointers and aliases more appropriately. What emerged was two functions `realType` which gave us the concrete native type (non-pointer, non-alias) an `unaliasType` which stripped aliasing but only until it hit pointerness. They were sort of inconsistently applied and in a few places I found the composition of them to be weird. I want to reframe those as: 1) `func nativeType(t) t` which removes all aliasing but retains pointerness. So for example: ``` type T1 string type T2 *T1 type T3 *T2 type Foo struct { Name *T3
AI Summary
The code disallows pointer types as keys in list-map structures by checking if a type is a pointer and returning an error if so. A helper function 'isPointer' is added to recursively check if a type or its underlying alias is a pointer.
Commit Log
Disallow pointers as listmap keys
AI Summary
The code adds test cases to verify that immutable fields correctly handle pointer values by deep copying them. The change improves the test coverage for immutable fields by ensuring that pointer values are properly handled and validated.
Commit Log
Add test cases for immutable to verify pointers The code was correct, but the test case was bad at proving it.
AI Summary
The code updates the kubelet to retrieve node addresses directly from the node informer instead of relying on a static field, ensuring up-to-date addresses for certificate management. This change resolves a dependency issue between node status reconciliation and certificate management by eliminating the use of a closure that depended on a static field.
Commit Log
kubelet: Use node addresses from informer The kubelet certificate manager was using a closure to get the node addresses, but this closure depended on a static field that was only updated during the node status update. This created a twisted dependency between the node.status reconcile loops and the certificate manager. This commit fixes this issue by using the node informer to get the node addresses directly. This ensures that the kubelet always requests a certificate with the latest node addresses.
AI Summary
The code adds a wait for the ResourceQuota status to be populated before creating a pod to avoid 403 errors due to unpopulated quota status. This ensures test stability by synchronizing with the ResourceQuota controller's status update process.
Commit Log
Wait for resource quota status to be populated Trying to create a pod using a resourcequota whose status has not been populated will result in api admission rejecting it with a 403 Forbidden. The pod resize tests do not wait/check to make sure the resourcequota status is populated before trying to use the quota when creating a pod, so in scenarious where either the test runs too fast, or the resourcequota controller is too slow, the tests will fail. This just makes the test wait up to a minute for the quota status to populate. The status generation timing/logic gets tested separately in test/e2e/apimachinery/resource_quota.go, and it waits a minute, so we wait a minute, but in practice it takes at worst seconds.
AI Summary
The diff updates the go.mod and go.sum files to include golang.org/x/tools v0.32.0 and upgrades golang.org/x/mod to v0.24.0. It also adds an import for goimports in the tools.go file, which is used by the go-to-protobuf tool.
Commit Log
add goimports to tools module used by go-to-protobuf, currently we rely on the host copy ...
AI Summary
The code adds a function to check if a host is localhost or loopback and skips proxy-related tests if so. This avoids running proxy environment variable tests on localhost, as they would not be proxied.
Commit Log
skip kubectl proxy env tests when the host is localhost/loopback and would not be proxied
AI Summary
The commit introduces filter-based ownership rules for Go module and sum files in multiple directories, specifying dep-approvers and dep-reviewers for dependency-related files. This change ensures that changes to go.mod and go.sum files are reviewed by designated dependency approvers and reviewers, improving governance and reducing risks of dependency-related issues.
Commit Log
enable dep-approvers for staging go.mod/go.sum NOTE: to use filters, _all_ entries must be under filters https://go.k8s.io/owners/#filters
AI Summary
The code adds a rule to track 'gopkg.in/yaml.v3' as an unwanted dependency, preferring the fork 'sigs.k8s.io/yaml/goyaml.v3'. This change likely aims to avoid using the archived 'yaml.v3' package and instead use the maintained fork within the Kubernetes ecosystem.
Commit Log
track gopkg.in/yaml.v3 as an unwanted depdendency this repo (which also has yaml.v2) was archived we have a fork of it already in sigs.k8s.io/yaml/goyaml.v3
AI Summary
The commit adds dep-approvers to the approvers list in the OWNERS file, likely to enforce dependency approval workflows. This change may affect code review and merge processes by requiring specific approvers for dependency-related changes.
Commit Log
attempt to re-introduce dep-approvers for go.mod/go.sum
AI Summary
The code converts the TestDescribeSecret test into parameterized tests to handle different sorting scenarios for secret keys. New test cases are added to ensure keys are sorted with proper casing precedence and numerical ordering.
Commit Log
Add more test cases to TestDescribeSecret test (#131422) * Converted to parameterised tests. * Added test case for sorting with casing. * Formatted code. * Added test case for keys that contain numbers.
AI Summary
The code removes deprecated scheduler cache metrics that were marked for removal in version 1.34. The metrics 'SchedulerCacheSize' and related metric updates are being deprecated and will be removed in the future.
Commit Log
Remove deprecated scheduler cache metrics
AI Summary
The code introduces a new VeryShortWatchError type to provide a specific error for short watch failures in the Kubernetes client-go library. This change updates error handling in handleAnyWatch to return the new error type instead of a generic error string, improving error matching and test expectations.
Commit Log
chore: Add VeryShortWatchError typed error - Add a new VeryShortWatchError struct for error matching, returned by `handleAnyWatch`, up through `Reflector.ListAndWatch`. - Update test expectations to match exact errors.
AI Summary
The comment for the GRPCVerbosity function in the DRA plugin was updated to clarify the default log level from 4 to 6. The change improves documentation by specifying that the default now includes both gRPC calls and their responses.
Commit Log
Fix comment for default gRPC log level in DRA plugin
AI Summary
The diff updates the hnslib version from 0.0.8 to 0.1.1 in the Windows KubeProxy project, which likely includes bug fixes or new features. The change also updates the corresponding checksums in go.sum and adjusts the version range for Modify Loadbalancer support to reflect HNS 15.5+ compatibility.
Commit Log
Update hnslib version in Windows KubeProxy.
AI Summary
The code adds a new test case to the NodeExpander test that includes a 'recoverVolumeExpansionFailure' flag to simulate recovery behavior based on a feature gate. The 'MarkNodeExpansionFinishedWithRecovery' function is modified to conditionally reset the resize status if the 'RecoverVolumeExpansionFailure' feature gate is enabled.
Commit Log
Mark NodeExpansion finsihed without featuregate check
AI Summary
The code change replaces 'MarkFSResizeFinished' with 'MarkNodeExpansionFinishedWithRecovery' in the NodeExpander's expandOnPlugin method, likely to handle node expansion with recovery logic. The new function introduces recovery handling by resetting ResizeStatus when 'RecoverVolumeExpansionFailure' is enabled, which may affect how volume expansion failures are managed.
Commit Log
Also change final status by removing featuregate check
AI Summary
The code enforces immutability of the Selector field in Deployment, ReplicaSet, and DaemonSet specs by moving validation logic into their respective update validation functions. This change removes the special handling for extensions/v1beta1 and ensures that the Selector field cannot be modified after creation, aligning with the current API versioning. Validation tests have been updated to reflect this change, including dedicated tests for Selector immutability and adjustments to expected error counts.
Commit Log
Always check for Immutable selector in Deployment Replicaset Daemonset (#131017) * Always for Immutable selector in Deployment Replicaset Daemonset With extensions/v1beta1 removed there is no need of a special case to check for Spec.Selector immutability. The ValidateImmutableField is now moved into the Validate[Resource]Update method, tests for v1beta1 are removed and test for v1 are added. Validation tests were updated to reflect the changes, mostly decoupling other fields changes from selectors and creating a dedicated case to test selector immutability. * Move validation inside appropriate function * Fix validation tests
AI Summary
The commit removes 'alculquicondor' from the OWNERS file in the test framework, likely to adjust approval and review permissions for the integration tests. This change may affect the contribution workflow for test framework updates, ensuring that only authorized maintainers can approve or review changes.
Commit Log
Remove alculquicondor from test framework OWNERS
AI Summary
The code adds error handling for missing revisions in the rollout history command, ensuring it returns a clear error message instead of panicking. It also improves the code's idiomatic Go practices, such as checking for the existence of a revision in a map and removing unnecessary error formatting.
Commit Log
Unhandled panic crash on rollout_history printer.PrintObj (#130503) * Change: Handling nil runtime.Object * Change: Return only if there is error in rollout_history * Change: Return the unknown revision error directly in rollout_history.go * Change: Remove unintended newline * Change: Using go idiomatic way for checking if historyInfo[o.Revision] exists * Change: Remove 'error:' from returned error message in rollout_history.go
AI Summary
The code updates the CHANGELOG for version v1.33.0, documenting new features, bug fixes, and changes introduced in this release. This change ensures that users and contributors are aware of the updates and can track the evolution of the project.
Commit Log
Update CHANGELOG/CHANGELOG-1.33.md for v1.33.0
AI Summary
The commit updates the CHANGELOG file for the Kubernetes v1.33.0 release, adding the release notes and removing older release entries to reflect the new version. This change ensures the changelog is accurate and up-to-date for the v1.33.0 release, including all relevant features, deprecations, and bug fixes.
Commit Log
CHANGELOG: Update directory for v1.33.0 release
AI Summary
The code change modifies the logic of the `checkForRecoveryFromExpansion` function to consider the recovery feature enabled even if the feature gate is disabled, based on the presence of resize status or allocated resources. A new test case was added to validate the behavior under different scenarios, including when the feature gate is disabled or enabled, and when resize status or allocated resources are present.
Commit Log
Check for newer fields when deciding expansion recovery feature status
AI Summary
The commit updates the CHANGELOG file to reflect the release of Kubernetes version v1.31.8, including download links and changelog entries. It adjusts the versioning structure to ensure the latest release is properly documented and includes security updates and bug fixes.
Commit Log
CHANGELOG: Update directory for v1.31.8 release
AI Summary
The commit updates the CHANGELOG for Kubernetes version 1.30.12, adding new download links and changelog entries for this version. It includes details about the binaries, container images, and changes introduced in v1.30.12, such as bug fixes and improvements to the username claim validation logic. The changes are focused on maintaining the changelog's accuracy and ensuring users have access to the correct download links and release notes.
Commit Log
Update CHANGELOG/CHANGELOG-1.30.md for v1.30.12
AI Summary
The commit updates the CHANGELOG for Kubernetes version v1.31.8, adding download links and release notes. It includes bug fixes related to kube-apiserver and kubelet behavior, but no new features or API changes.
Commit Log
Update CHANGELOG/CHANGELOG-1.31.md for v1.31.8
AI Summary
The commit updates the version of cri-tools to v1.33.0 across multiple configuration files. This change likely aims to incorporate bug fixes, security patches, or new features from the v1.33.0 release of cri-tools.
Commit Log
Update cri-tools to v1.33.0
AI Summary
The code modifies the `GetSupportedEmulatedVersions` function to expand the list of supported emulated versions in etcd data to include versions n-3. This change likely aims to increase test coverage by ensuring tests include versions that are three minor versions below the current effective version.
Commit Log
Expand etcd data test to n-3
AI Summary
The code diff removes outdated comments related to the CSI hostPath plugin and its documentation link. This change likely improves code clarity by eliminating obsolete information that is no longer relevant.
Commit Log
remove outdate comment
AI Summary
The commit updates the Makefile to read the Go version from .go-version instead of hardcoding it. This change avoids duplication of the Go version across files and ensures consistency.
Commit Log
test/images: read .go-version instead of duplicating
AI Summary
The code change replaces the import of apiregistration v1 with apiextensions v1 to use the correct API package. This likely addresses a dependency or API version mismatch issue, ensuring the correct API is used for extended resources.
Commit Log
fix: use correct apiextensions v1 API instead of apiregistration v1
AI Summary
The code diff renames package names from 'csi_mock' to 'csimock' across multiple files in the Kubernetes e2e test suite, likely to fix linting issues related to naming conventions. This change is likely part of a broader effort to standardize package names and ensure they follow the project's naming conventions, which may involve removing underscores or using camelCase.
Commit Log
fix lints
AI Summary
The code removes the 'list-via-watch' feature from the kube-controller-manager by default, as it is no longer considered necessary due to performance concerns. The feature gate for 'list-via-watch' is disabled by default and set to false starting from version 1.33, with a Beta release status. Existing tests related to the 'list-via-watch' feature are skipped until the feature is either re-enabled or removed entirely.
Commit Log
Stop exposing list-via-watch from the server With StreamingCollectionEncodingToJSON and StreamingCollectionEncodingToProtobuf, the WatchList must re-justify its necessity. To prevent an ecosystem from building around a feature that may not be promoted, we will stop serving list-via-watch until performance numbers can justify its inclusion. This also stops the kube-controller-manager from using the list-via-watch by default. The fallback is a regular list, so during the skew during an upgrade the "right" thing will happen and the new StreamingCollectionEncoding will be used.
AI Summary
The code introduces a retry mechanism for creating CRDs to handle name conflicts and ensures robust creation of multi-version CRDs. It also updates the CRD creation logic to use a more flexible function (genRandomCRD) that generates random names and handles versioning more effectively.
Commit Log
deflake e2e tests: CustomResourcePublishOpenAPI works for multiple CRDs of same group and version but different kinds
AI Summary
The code change modifies the etcd shutdown logic to cancel the context immediately upon exit, avoiding a 5-second delay. This ensures the background goroutine stops promptly, improving shutdown efficiency and reducing unnecessary waiting.
Commit Log
etcd: fix 5 second delay during shutdown The main goroutine always waited for the background goroutine, which itself only proceeded after the 5 second timeout. To tell the goroutine that it is okay to stop immediately, the main goroutine must cancel the context as soon as etcd has quit.
AI Summary
The diff updates the etcd version from 3.5.21 to 3.6.0-rc.4 across multiple files, including dependencies, Makefile, and supported versions. This change likely aims to incorporate new features or bug fixes from the etcd 3.6.0 release candidate, aligning the project with the latest development version.
Commit Log
Build etcd v3.6.0-rc.4 image
AI Summary
The commit updates the CHANGELOG for the v1.33.0-rc.1 release, adding new entries for the release and its dependencies. It includes download links for binaries and container images, along with a list of bug fixes and dependency changes.
Commit Log
CHANGELOG: Update directory for v1.33.0-rc.1 release
AI Summary
The commit updates the CHANGELOG for Kubernetes version v1.33.0-rc.1, adding the new release and its associated downloads and changes. It includes the release notes, download links for various binaries and container images, and details about bug fixes and dependency updates.
Commit Log
Update CHANGELOG/CHANGELOG-1.33.md for v1.33.0-rc.1
AI Summary
The code adds retry logic to handle transient failures in specific endpoint tests, particularly for endpoints that require synchronization. The retry mechanism is applied to endpoints like '/readyz/sched-handler-sync' to avoid flaky test failures due to initialization delays.
Commit Log
deflake intergation test: TestEndpointHandlers
AI Summary
The commit removes the 'set -x' command from the test-integration-dockerized.sh script to reduce log noise during etcd installation. This change likely aims to make the integration tests cleaner by suppressing verbose debug output during the etcd installation phase.
Commit Log
reduce etcd install log noise
AI Summary
The code ensures that the watcher.Stop() method is always called to prevent deadlocks in Kubernetes' Reflector implementation. The changes refactor ListAndWatch and watch methods to always stop the watcher, except in specific cases where a bookmark is received and exitOnWatchListBookmarkReceived is true. The update includes new unit tests to validate the expected behavior of the watcher.Stop() calls.
Commit Log
fix: Watcher deadlock from Stop not being called Change: - refactor Reflector.ListAndWatch and Reflector.watch to always call watcher.Stop. - refactor Reflector.handleAnyWatch to always call watcher.Stop, EXCEPT when exitOnWatchListBookmarkReceived && watchListBookmarkReceived. - Update unit tests with these new expectations. Effect: - ensures watcher.Stop is always called at least once - avoids deadlocks in watcher implementations when watcher.Watch is called, but watcher.Stop is never called. Note: It's impossible to guarantee that Stop will only be called once. So watch.Interface implementations must tollerate Stop being called multiple times.
AI Summary
The code allows upgrading a single-stack ServiceCIDR to dual-stack by adding a new CIDR without changing the existing primary CIDR, ensuring backward compatibility and preventing disruption of existing services. It restricts other risky operations like downgrading, reordering CIDRs, or changing the primary CIDR during a dual-stack upgrade to avoid breaking existing configurations or cluster networking. The changes include updated validation logic, test cases, and controller logic to handle the single-to-dual-stack upgrade safely.
Commit Log
Allow single-to-dual-stack reconfiguration for ServiceCIDR This change modifies the validation logic for ServiceCIDR updates (`ValidateServiceCIDRUpdate`) to specifically permit upgrading a single-stack ServiceCIDR (either IPv4 or IPv6) to a dual-stack configuration. This reconfiguration path is considered safe because it only involves adding a new CIDR range without altering the existing primary CIDR. This ensures that existing Service IP allocations are not disrupted. Other modifications, such as: - Downgrading from dual-stack to single-stack - Reordering CIDRs in a dual-stack configuration - Changing the primary CIDR during a single-to-dual-stack reconfiguration remain disallowed by the validation. These operations carry a higher risk of breaking existing Services or cluster networking configurations. Preventing these updates automatically encourages
AI Summary
The code change updates the expected output in a test to use multi-line string formatting with line breaks. This likely ensures the test correctly validates the formatted output of the describe command for a Secret resource.
Commit Log
pr fix
AI Summary
The code adds locking around the freeImage function to ensure thread safety when removing images. This change likely prevents race conditions by synchronizing access to image records during removal.
Commit Log
fix(kubelet): acquire imageRecordsLock when removing image
AI Summary
The code simplifies the etcd3 watcher by replacing direct event sending with a queue mechanism to improve reliability and prevent blocking. This change likely aims to handle event processing more gracefully, especially in cases of slow consumers or errors, by using a queue to buffer events.
Commit Log
Simplify etcd3 watcher
AI Summary
The code introduces a ContainerIter utility that provides an iterator over containers in a pod spec, allowing for filtered iteration based on container types. This change replaces the old loop-based logic in VisitContainers with a more idiomatic and reusable iterator pattern using the iter package.
Commit Log
Add ContainerIter utility for ranging over pod containers
AI Summary
The commit updates the busybox test image version from 1.36.1 to 1.37.0 across all architectures. This change ensures that the test environment uses the latest version of the busybox image, which may include bug fixes or new features.
Commit Log
Update the busybox test image to 1.37.0
AI Summary
The code merges two functions, RunBenchmarkPerfScheduling and runBenchmarkPerSchedulingImpl, to streamline the scheduler performance benchmarking process. The change replaces references to 'options' with 'opts' in the function call, likely to align with a naming convention or refactor.
Commit Log
merge RunBenchmarkPerfScheduling and runBenchmarkPerfScheduling
AI Summary
The commit adds a new release rule for version 1.33 in the staging/publishing/rules.yaml file, specifying dependencies, source directories, and Go version. This rule is likely added to support the release process for Kubernetes version 1.33, ensuring correct dependencies and build configurations are used.
Commit Log
staging/publishing: add release-1.33 rules
AI Summary
The code adds a missing header in the HTTP stream test file for Kubernetes. It also includes whitespace adjustments in the import section.
Commit Log
add missing header in httpstream_test.go; whitespace in imports
AI Summary
The code change fixes a potential goroutine leak in the kubelet tests by ensuring that the resize event handler properly cancels when the context is done. The fix updates the handleResizeEvents function to use the request context, allowing it to gracefully exit and prevent resource leaks.
Commit Log
Fixed go routine leak in kubelet tests
AI Summary
The code change fixes a formatting issue in a comment related to preventing a goroutine leak in the handleResizeEvents function. The change is minor and focuses on improving code readability without altering functionality.
Commit Log
fixed the formatting
AI Summary
The commit adds goleak as a dependency to the kubelet's go.mod file via the hack/update-vendor.sh script. This is likely to enable leak detection in tests, improving the reliability and stability of the kubelet component.
Commit Log
add goleak to kubelet vendor via hack/update-vendor.sh
AI Summary
The code replaces usage of securejoin with Go 1.24's os.Root() to handle secure file path operations. The changes involve replacing securejoin imports and calls with os.Root() and related functions to maintain secure path handling.
Commit Log
Use Go 1.24 os.Root instead of filepath-securejoin All the features of securejoin used in k/k can be replaced by equivalents in Go 1.24's new os.Root() feature.
AI Summary
The code removes FlowSchemas related to leader election and endpoint controller, which were used for managing access to endpoints and configmaps for leader election purposes. This change likely aims to simplify the flow control configuration by eliminating deprecated or no longer needed rules, especially as support for endpoints and configmaps in leader election is being phased out.
Commit Log
Remove FlowSchemas handling non-leases-backed leader election
AI Summary
The code updates the coredns version from v1.12.0 to v1.12.1 across multiple files, including dependencies, images, and constants. This change likely aims to incorporate bug fixes, security patches, or new features from the v1.12.1 release of coredns.
Commit Log
Update coredns version to v1.12.1
AI Summary
The code adds [Serial] tags to specific conformance tests that schedule many pods to control parallel execution. This change ensures these tests run sequentially to avoid resource contention and potential race conditions.
Commit Log
hack/update-conformance-yaml.sh adds [Serial] tags to some tests that schedule lots of pods
AI Summary
The code adds the framework.WithSerial() flag to specific test cases in the garbage collector e2e tests to ensure they run serially due to resource consumption. This change is likely made to prevent resource contention and ensure test stability by avoiding concurrent execution of tests that create a large number of pods.
Commit Log
mark tests that use estimateMaxPods as serial
AI Summary
The commit updates the version of the prometheus/client_golang package from a release candidate (rc.0) to the final released version v1.22.0 across multiple Go module files. This change ensures that the project uses a stable and officially released version of the library, which may include bug fixes, security patches, and improved functionality.
Commit Log
Move to released version of prometheus/client_golang v1.22.0 from rc.0
AI Summary
The code change renames 'finishedJobStore' to 'finishedJobExpectations' in the job controller, aligning with the use of expectations in the controller framework. This change is part of a refactoring to merge integration tests into a single test function, improving test organization and maintainability. The test function 'TestDelayedJobUpdateEvent' was renamed and restructured to cover both success and failure event scenarios in a unified test case.
Commit Log
merge the integration tests into a single one
AI Summary
The code updates the import path and replaces the feature flag registration with a new framework that uses the feature gates directly. This change is likely part of migrating the test framework to use the new feature gate system for better compatibility and maintainability.
Commit Log
update kubelet_authz.go to new test framework
AI Summary
The code updates the etcd version from 3.5.17 to 3.5.21 across multiple files, including dependencies, manifests, constants, and test utilities. This change ensures compatibility with the latest etcd version, potentially including bug fixes and security patches.
Commit Log
Update etcd to 3.5.21
AI Summary
The commit updates the CSI Proxy version to v1.2.1-gke.2 in the config-common.sh script. This change likely aims to incorporate bug fixes, security patches, or new features from the updated CSI Proxy version.
Commit Log
Update CSI Proxy to v1.2.1-gke.2
AI Summary
The code adds a new option to enable API-server initialization before running scheduler performance benchmarks, allowing custom setup like applying CRDs for plugins. This change introduces a new function `WithPrepareFn` and modifies `RunBenchmarkPerfScheduling` to accept options, enabling flexible pre-benchmark setup.
Commit Log
scheduler-perf: add option to enable api-server initialization
AI Summary
The code introduces helper functions to handle nil returns from Pop in cache tests, preventing leaked goroutines. It removes ignore rules for goroutine leaks in testMain, relying on the new helper functions to manage test cleanup. This change improves test reliability by ensuring goroutines are properly cleaned up, avoiding potential resource leaks.
Commit Log
Clean up leaked goroutines in cache unit tests
AI Summary
The code removes support for etcd version 3.6.0-rc.2 and updates the latest version to 3.5.21. This change likely reflects a decision to drop support for the pre-release version 3.6.0-rc.2 and align with a stable release.
Commit Log
cleanup etcd v3.6.0
AI Summary
The code removes a test setup and invocation for 'TestListInconsistentContinuation', likely to skip running it when certain conditions are not met. This change avoids starting etcd for skipped tests, which reduces resource usage and potential conflicts during test execution.
Commit Log
Don't start etcd for skipped test
AI Summary
The code adds a call to Stop() on the cacher in the TestWatchStreamSeparation test to ensure it is properly shut down, which can speed up the test's shutdown process. This change likely aims to improve test performance by ensuring resources are released more quickly, but it could introduce risks if the cacher is not fully initialized or if Stop() has side effects.
Commit Log
Stop cacher in TestWatchStreamSeparation to speed up shutdown
AI Summary
The code change updates the `RunTestList` function to use `initialRV` instead of `list.ResourceVersion` for the expected resource version in tests. This change aims to ensure consistency in resource version checks during list operations, preventing potential flakes caused by stale or inconsistent resource versions.
Commit Log
Fix flake, non-consistent list doesn't give any guarantees about staleness
AI Summary
The code change removes the non-breaking space character between '×' and '10⁰⁰' in the '%e' format string to align with expected output. This change was likely made to address formatting inconsistencies or compatibility issues with a newer version of x/net or related libraries.
Commit Log
fix narrow spaces of %e for x/net bump https://github.com/google/cel-go/issues/1100
AI Summary
The commit adds new maintainers to the OWNERS_ALIASES file for the sig-autoscaling group. This change is likely to expand the team responsible for maintaining and reviewing related Kubernetes components.
Commit Log
update sig-autoscaling maintainers
AI Summary
The diff updates the etcd version from 3.5.17 to 3.5.21 and adjusts related dependencies and build configurations. This change likely aims to align the project with a more recent stable release of etcd, ensuring compatibility and security fixes.
Commit Log
Build etcd 3.5.21 image
AI Summary
The code ensures certificate data is written to disk using the Sync method to prevent data loss. This change was likely added to improve reliability by guaranteeing data persistence, especially in cases of unexpected shutdowns or crashes.
Commit Log
Certificate store: ensure data is written to disk
AI Summary
The change modifies the error message in the VerifyCgroupValue function to include the original error when retrieving the cgroup value fails. This improvement ensures that the error message provides more context about the failure, making debugging easier.
Commit Log
e2e: Keep original error when exec in container fails
AI Summary
The code change introduces support for rounded CPU limit values in container cgroup tests by refactoring the logic to use a helper function that generates expected cgroup values. It replaces direct conversion and formatting of CPU limits with a more flexible approach that handles both cgroup v1 and v2 formats, including rounding for compatibility with runc issues.
Commit Log
accept rounded container cpu limits in container cgroup tests (#131059)
AI Summary
The code change modifies the logic for determining if a node should be considered for load balancing based on the 'exclude-from-external-load-balancers' label. It now attempts to parse the label value as a boolean and returns the negation of that value, handling invalid values gracefully by returning false.
Commit Log
[cloud-provider] respect the "exclude-from-external-load-balancers=false" label