diff --git a/cmd/krel/cmd/CHANGELOG-1.25.json b/cmd/krel/cmd/CHANGELOG-1.25.json new file mode 100644 index 00000000000..9b9dce4d88c --- /dev/null +++ b/cmd/krel/cmd/CHANGELOG-1.25.json @@ -0,0 +1,364 @@ +{ + "111936": { + "commit": "aeddf8507aac22b316d556ec81df1d7774f1b295", + "text": "Protobuf serialization of metav1.MicroTime timestamps (used in `Lease` and `Event` API objects) has been corrected to truncate to microsecond precision, to match the documented behavior and JSON/YAML serialization. Any existing persisted data is truncated to microsecond when read from etcd.", + "markdown": "Protobuf serialization of metav1.MicroTime timestamps (used in `Lease` and `Event` API objects) has been corrected to truncate to microsecond precision, to match the documented behavior and JSON/YAML serialization. Any existing persisted data is truncated to microsecond when read from etcd. ([#111936](https://github.com/kubernetes/kubernetes/pull/111936), [@haoruan](https://github.com/haoruan)) [SIG API Machinery]", + "author": "haoruan", + "author_url": "https://github.com/haoruan", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/111936", + "pr_number": 111936, + "kinds": [ + "bug", + "api-change" + ], + "sigs": [ + "api-machinery" + ], + "duplicate_kind": true, + "pr_body": "\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n/kind bug\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n#### What this PR does / why we need it:\r\nTruncate the nanosecond to microsecond when marshaling and unmarshaling proto, make sure the same precision for JSON and proto marshaling/unmarshaling.\r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #111928\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nProtobuf serialization of metav1.MicroTime timestamps (used in `Lease` and `Event` API objects) has been corrected to truncate to microsecond precision, to match the documented behavior and JSON/YAML serialization. Any existing persisted data is truncated to microsecond when read from etcd.\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "112357": { + "commit": "cdc25fdca2133ed59811c8dd669f66253bf67789", + "text": "kube-scheduler: add taints filtering logic consistent with TaintToleration plugin for PodTopologySpread plugin", + "markdown": "Kube-scheduler: add taints filtering logic consistent with TaintToleration plugin for PodTopologySpread plugin ([#112357](https://github.com/kubernetes/kubernetes/pull/112357), [@SataQiu](https://github.com/SataQiu)) [SIG Scheduling and Testing]", + "author": "SataQiu", + "author_url": "https://github.com/SataQiu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112357", + "pr_number": 112357, + "areas": [ + "test" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "scheduling", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "pr_body": "\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n/kind bug\r\n/kind cleanup\r\n\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n#### What this PR does / why we need it:\r\nkube-scheduler: add taints filtering logic consistent with TaintToleration plugin for PodTopologySpread plugin\r\n\r\n1. extract the common filter function into `helper` package\r\n2. using it in TaintToleration and PodTopologySpread plugins\r\n\r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nkube-scheduler: add taints filtering logic consistent with TaintToleration plugin for PodTopologySpread plugin\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "112403": { + "commit": "611af0abbcc9d0430fbb8468da7a2ab3bb1d3b6b", + "text": "For raw block CSI volumes on Kubernetes, kubelet was incorrectly calling CSI NodeStageVolume for every single \"map\" (i.e. raw block \"mount\") operation for a volume already attached to the node. This PR ensures it is only called once per volume per node.", + "markdown": "For raw block CSI volumes on Kubernetes, kubelet was incorrectly calling CSI NodeStageVolume for every single \"map\" (i.e. raw block \"mount\") operation for a volume already attached to the node. This PR ensures it is only called once per volume per node. ([#112403](https://github.com/kubernetes/kubernetes/pull/112403), [@akankshakumari393](https://github.com/akankshakumari393)) [SIG Storage]", + "author": "akankshakumari393", + "author_url": "https://github.com/akankshakumari393", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112403", + "pr_number": 112403, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "pr_body": "\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n/kind bug\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n#### What this PR does / why we need it:\r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #112343\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nFor raw block CSI volumes on Kubernetes, kubelet was incorrectly calling CSI NodeStageVolume for every single \"map\" (i.e. raw block \"mount\") operation for a volume already attached to the node. This PR ensures it is only called once per volume per node.\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "112489": { + "commit": "7ec5bc78c8297173a0b65a1c02d180756f5dcc53", + "text": "etcd: Update to v3.5.5", + "markdown": "Etcd: Update to v3.5.5 ([#112489](https://github.com/kubernetes/kubernetes/pull/112489), [@dims](https://github.com/dims)) [SIG API Machinery, Cloud Provider, Cluster Lifecycle and Testing]", + "author": "dims", + "author_url": "https://github.com/dims", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112489", + "pr_number": 112489, + "areas": [ + "test", + "provider/gcp", + "release-eng", + "kubeadm", + "e2e-test-framework" + ], + "kinds": [ + "bug", + "cleanup" + ], + "sigs": [ + "api-machinery", + "cloud-provider", + "cluster-lifecycle", + "testing" + ], + "duplicate": true, + "duplicate_kind": true, + "pr_body": "\r\nSigned-off-by: Davanum Srinivas \u003cdavanum@gmail.com\u003e\r\n\r\n\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n\r\n/kind bug\r\n/kind cleanup\r\n\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n#### What this PR does / why we need it:\r\nUpdate etcd to [v3.5.5](https://github.com/etcd-io/etcd/releases/tag/v3.5.5).\r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\netcd: Update to v3.5.5\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "112557": { + "commit": "a7d69e8884a40b09cffd89cc5cbc085bf0ac97c2", + "text": "Fix list cost estimation in Priority and Fairness for list requests with metadata.name specified.", + "markdown": "Fix list cost estimation in Priority and Fairness for list requests with metadata.name specified. ([#112557](https://github.com/kubernetes/kubernetes/pull/112557), [@marseel](https://github.com/marseel)) [SIG API Machinery]", + "author": "marseel", + "author_url": "https://github.com/marseel", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112557", + "pr_number": 112557, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "pr_body": "\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n/kind bug\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n#### What this PR does / why we need it:\r\nCurrently, some of the LIST requests which are handled as GET requests are going through list work estimator and are assigned incorrect width. Examples:\r\n```\r\n\"HTTP\" verb=\"GET\" URI=\"/apis/certificates.k8s.io/v1/certificatesigningrequests?fieldSelector=metadata.name%3Dcsr-xxs4m\" latency=\"791.275274ms\" userAgent=\"kubelet/v1.25.0 (linux/amd64) kubernetes/eac9e5e\" audit-ID=\"48dc5a58-dd54-4813-9291-fcb956fb0365\" srcIP=\"10.227.1.187:50020\" apf_pl=\"system\" apf_fs=\"system-nodes\" apf_iseats=10 apf_fseats=0 apf_additionalLatency=\"0s\" fl_priorityandfairness=\"779.056278ms\" apf_execution_time=\"11.345816ms\" resp=200\r\n\"HTTP\" verb=\"GET\" URI=\"/api/v1/namespaces/test-6rmmu0-50/configmaps?fieldSelector=metadata.name%3Dbig-deployment-1\u0026limit=500\u0026resourceVersion=0\" latency=\"471.626µs\" userAgent=\"kubelet/v1.25.0 (linux/amd64) kubernetes/eac9e5e\" audit-ID=\"7c3ddba4-5cb9-43a9-af3f-740b9da44d89\" srcIP=\"10.125.76.42:49794\" apf_pl=\"system\" apf_fs=\"system-nodes\" apf_iseats=10 apf_fseats=0 apf_additionalLatency=\"0s\" apf_execution_time=\"208.981µs\" resp=200\r\n```\r\n\r\nThis PR fixes it by assigning 1 seat for such requests.\r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nFix list cost estimation in Priority and Fairness for list requests with metadata.name specified.\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "112693": { + "commit": "c8d0fbe009b48f96e36bba9c36e20dba79bfdd05", + "text": "Bump golang.org/x/net to v0.1.1-0.20221027164007-c63010009c80", + "markdown": "Bump golang.org/x/net to v0.1.1-0.20221027164007-c63010009c80 ([#112693](https://github.com/kubernetes/kubernetes/pull/112693), [@aimuz](https://github.com/aimuz)) [SIG API Machinery, Architecture, Auth, CLI, Cloud Provider, Cluster Lifecycle, Instrumentation, Node, Security and Storage]", + "author": "aimuz", + "author_url": "https://github.com/aimuz", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112693", + "pr_number": 112693, + "areas": [ + "apiserver", + "kubectl", + "cloudprovider", + "code-generation", + "dependency" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery", + "architecture", + "auth", + "cli", + "cloud-provider", + "cluster-lifecycle", + "instrumentation", + "node", + "security", + "storage" + ], + "duplicate": true, + "pr_body": "Signed-off-by: aimuz \u003cmr.imuz@gmail.com\u003e\r\n\r\n\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n/kind bug\r\n\r\n\r\n#### What this PR does / why we need it:\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nfix https://pkg.go.dev/vuln/GO-2022-0969\r\n\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #112758\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nBump golang.org/x/net to v0.1.1-0.20221027164007-c63010009c80\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "112807": { + "commit": "f28838c1feb78ead9679cfd6ac384926c6856027", + "text": "This reverts https://github.com/kubernetes/kubernetes/pull/109706 and https://github.com/kubernetes/kubernetes/pull/111691 which caused https://github.com/kubernetes/kubernetes/issues/112793. I.e: the service controller to incorrectly sync load balancers for ExternalTrafficPolicy=Local under certain conditions", + "markdown": "This reverts https://github.com/kubernetes/kubernetes/pull/109706 and https://github.com/kubernetes/kubernetes/pull/111691 which caused https://github.com/kubernetes/kubernetes/issues/112793. I.e: the service controller to incorrectly sync load balancers for ExternalTrafficPolicy=Local under certain conditions ([#112807](https://github.com/kubernetes/kubernetes/pull/112807), [@alexanderConstantinescu](https://github.com/alexanderConstantinescu)) [SIG Cloud Provider and Network]", + "author": "alexanderConstantinescu", + "author_url": "https://github.com/alexanderConstantinescu", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112807", + "pr_number": 112807, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug", + "regression" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "duplicate": true, + "duplicate_kind": true, + "pr_body": "\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n/kind bug\r\n/kind regression\r\n\r\n#### What this PR does / why we need it:\r\n\r\nThis reverts #109706 and #111691 which caused https://github.com/kubernetes/kubernetes/issues/112793\r\n\r\nA fix PR is up (#112798), but this part of Kube is...well, complicated and does not have a very broad set of E2E tests. So doubts are expressed as to how exhaustive the fix really is, hence why this PR is up. \r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes #112798\r\n\r\n#### Special notes for your reviewer:\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nThis reverts https://github.com/kubernetes/kubernetes/pull/109706 and https://github.com/kubernetes/kubernetes/pull/111691 which caused https://github.com/kubernetes/kubernetes/issues/112793. I.e: the service controller to incorrectly sync load balancers for ExternalTrafficPolicy=Local under certain conditions\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n\r\n/assign @thockin \r\n/cc @swetharepakula \r\n/cc @panslava \r\n\r\n" + }, + "112840": { + "commit": "af1935bf35353418838b19e1851ef20fb71de905", + "text": "Fixes an issue in winkernel proxier that causes proxy rules to leak anytime service backends are modified.", + "markdown": "Fixes an issue in winkernel proxier that causes proxy rules to leak anytime service backends are modified. ([#112840](https://github.com/kubernetes/kubernetes/pull/112840), [@daschott](https://github.com/daschott)) [SIG Network and Windows]", + "author": "daschott", + "author_url": "https://github.com/daschott", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112840", + "pr_number": 112840, + "kinds": [ + "bug" + ], + "sigs": [ + "network", + "windows" + ], + "duplicate": true, + "pr_body": "Cherry pick of #112837 on release-1.25.\r\n\r\n#112837: Fix winkernel proxier setting the wrong HNS loadbalancer ID\r\n\r\nFor details on the cherry pick process, see the [cherry pick requests](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) page.\r\n\r\n```release-note\r\nFixes an issue in winkernel proxier that causes proxy rules to leak anytime service backends are modified.\r\n```" + }, + "112887": { + "commit": "9c548c372d9a8cc4e14ae87841eefd15084a365b", + "text": "Consider only plugin directory and not entire kubelet root when cleaning up mounts", + "markdown": "Consider only plugin directory and not entire kubelet root when cleaning up mounts ([#112887](https://github.com/kubernetes/kubernetes/pull/112887), [@mattcary](https://github.com/mattcary)) [SIG Storage]", + "author": "mattcary", + "author_url": "https://github.com/mattcary", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112887", + "pr_number": 112887, + "kinds": [ + "bug" + ], + "sigs": [ + "storage" + ], + "pr_body": "/kind bug\r\n\r\nCherry pick #112607 Make mount ref search more robust\r\n\r\nFixes #112606\r\n\r\n```release-note\r\nConsider only plugin directory and not entire kubelet root when cleaning up mounts\r\n```\r\n\r\n/sig storage" + }, + "112902": { + "commit": "63339aebaa9c7aa492920777dcce1960f63cb552", + "text": "Kubernetes is now built with Go 1.19.2", + "markdown": "Kubernetes is now built with Go 1.19.2 ([#112902](https://github.com/kubernetes/kubernetes/pull/112902), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing]", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/112902", + "pr_number": 112902, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "pr_body": "#### What type of PR is this?\r\n\r\n/kind feature\r\n/area dependency\r\n\r\n#### What this PR does / why we need it:\r\n\r\n- Bump kube-cross and go-runner images to Go 1.19.2 based ones\r\n- Bump test Makefile to Go 1.19.2\r\n- Bump default Go version for publishing bot to 1.19.2\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nPart of https://github.com/kubernetes/release/issues/2694\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\r\n```release-note\r\nKubernetes is now built with Go 1.19.2\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n```docs\r\n\r\n```\r\n\r\n/sig release\r\ncc @kubernetes/release-engineering \r\n/assign @dims " + }, + "113031": { + "commit": "895314eb202cc3508f2e44cec4edbf57ed6fe27c", + "text": "Fixed a bug where a change in the `appProtocol` for a Service did not trigger a load balancer update.", + "markdown": "Fixed a bug where a change in the `appProtocol` for a Service did not trigger a load balancer update. ([#113031](https://github.com/kubernetes/kubernetes/pull/113031), [@MartinForReal](https://github.com/MartinForReal)) [SIG Cloud Provider and Network]", + "author": "MartinForReal", + "author_url": "https://github.com/MartinForReal", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113031", + "pr_number": 113031, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "network" + ], + "duplicate": true, + "pr_body": "Cherry pick of #112785 on release-1.25.\r\n\r\n#112785: service update event should be triggered when appProtocol in\r\n\r\n/kind bug\r\n\r\n\r\nFor details on the cherry pick process, see the [cherry pick requests](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) page.\r\n\r\n```release-note\r\nFixed a bug where a change in the `appProtocol` for a Service did not trigger a load balancer update.\r\n```" + }, + "113133": { + "commit": "ba6cd5c78aa334da1400c4274cb0494115c61655", + "text": "kube-apiserver: DELETECOLLECTION API requests are now recorded in metrics with the correct verb.", + "markdown": "Kube-apiserver: DELETECOLLECTION API requests are now recorded in metrics with the correct verb. ([#113133](https://github.com/kubernetes/kubernetes/pull/113133), [@sxllwx](https://github.com/sxllwx)) [SIG API Machinery]", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113133", + "pr_number": 113133, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "pr_body": "\u003c!-- Thanks for sending a pull request! Here are some tips for you:\r\n\r\n1. If this is your first time, please read our contributor guidelines: https://git.k8s.io/community/contributors/guide/first-contribution.md#your-first-contribution and developer guide https://git.k8s.io/community/contributors/devel/development.md#development-guide\r\n2. Please label this pull request according to what type of issue you are addressing, especially if this is a release targeted pull request. For reference on required PR/issue labels, read here:\r\nhttps://git.k8s.io/community/contributors/devel/sig-release/release.md#issuepr-kind-label\r\n3. Ensure you have added or ran the appropriate tests for your PR: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md\r\n4. If you want *faster* PR reviews, read how: https://git.k8s.io/community/contributors/guide/pull-requests.md#best-practices-for-faster-reviews\r\n5. If the PR is unfinished, see how to mark it: https://git.k8s.io/community/contributors/guide/pull-requests.md#marking-unfinished-pull-requests\r\n--\u003e\r\n\r\n#### What type of PR is this?\r\n\r\n\u003c!--\r\nAdd one of the following kinds:\r\n/kind bug\r\n/kind cleanup\r\n/kind documentation\r\n/kind feature\r\n\r\nOptionally add one or more of the following kinds if applicable:\r\n/kind api-change\r\n/kind deprecation\r\n/kind failing-test\r\n/kind flake\r\n/kind regression\r\n--\u003e\r\n\r\n/kind bug\r\n\r\n#### What this PR does / why we need it:\r\n\r\nDeleteCollection API decode DeleteOptions fail. \r\n\r\nThe reason for the issue is that the apiserver uses the Scheme in the global variable pkg/api/legacyscheme/scheme.go, and registers the DeleteOptions corresponding to each APIGroup in the Scheme. But DeleteOptions in meta.k8s.io/v1 is not registered, resulting in a notRegisteredErr.\r\n\r\n\r\n#### Which issue(s) this PR fixes:\r\n\u003c!--\r\n*Automatically closes linked issue when PR is merged.\r\nUsage: `Fixes #\u003cissue number\u003e`, or `Fixes (paste link of issue)`.\r\n_If PR is about `failing-tests or flakes`, please post the related issues/tests in a comment and do not use `Fixes`_*\r\n--\u003e\r\nFixes # https://github.com/kubernetes/kubernetes/issues/111985\r\n\r\n#### Special notes for your reviewer:\r\n\r\nMaybe we need to cherry-pick to the most recent release.\r\n\r\n#### Does this PR introduce a user-facing change?\r\n\u003c!--\r\nIf no, just write \"NONE\" in the release-note block below.\r\nIf yes, a release note is required:\r\nEnter your extended release note in the block below. If the PR requires additional action from users switching to the new release, include the string \"action required\".\r\n\r\nFor more information on release notes see: https://git.k8s.io/community/contributors/guide/release-notes.md\r\n--\u003e\r\n```release-note\r\nkube-apiserver: DELETECOLLECTION API requests are now recorded in metrics with the correct verb.\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n\r\n\u003c!--\r\nThis section can be blank if this pull request does not require a release note.\r\n\r\nWhen adding links which point to resources within git repositories, like\r\nKEPs or supporting documentation, please reference a specific commit and avoid\r\nlinking directly to the master branch. This ensures that links reference a\r\nspecific point in time, rather than a document that may change over time.\r\n\r\nSee here for guidance on getting permanent links to files: https://help.github.com/en/articles/getting-permanent-links-to-files\r\n\r\nPlease use the following format for linking documentation:\r\n- [KEP]: \u003clink\u003e\r\n- [Usage]: \u003clink\u003e\r\n- [Other doc]: \u003clink\u003e\r\n--\u003e\r\n```docs\r\n\r\n```\r\n" + }, + "113247": { + "commit": "765ce8a5ec49da009c44ce49e9b7ef47c3c0b005", + "text": "kube-proxy, will restart in case it detects that the Node assigned pod.Spec.PodCIDRs have changed", + "markdown": "Kube-proxy, will restart in case it detects that the Node assigned pod.Spec.PodCIDRs have changed ([#113247](https://github.com/kubernetes/kubernetes/pull/113247), [@code-elinka](https://github.com/code-elinka)) [SIG Cloud Provider, Network and Storage]", + "author": "code-elinka", + "author_url": "https://github.com/code-elinka", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113247", + "pr_number": 113247, + "areas": [ + "cloudprovider" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "cloud-provider", + "network", + "storage" + ], + "duplicate": true, + "pr_body": "Cherry pick of #111344 on release-1.25.\r\n\r\n#111344: kube-proxy: gate topology correctly\r\n\r\nFor details on the cherry pick process, see the [cherry pick requests](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) page.\r\n\r\n```release-note\r\nkube-proxy, will restart in case it detects that the Node assigned pod.Spec.PodCIDRs have changed\r\n```" + }, + "113286": { + "commit": "42df02029d6dd6387f27f64bd823571f8f48df69", + "text": "kube-apiserver: bugfix DeleteCollection API fails if request body is non-empty", + "markdown": "Kube-apiserver: bugfix DeleteCollection API fails if request body is non-empty ([#113286](https://github.com/kubernetes/kubernetes/pull/113286), [@sxllwx](https://github.com/sxllwx)) [SIG API Machinery]", + "author": "sxllwx", + "author_url": "https://github.com/sxllwx", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113286", + "pr_number": 113286, + "areas": [ + "apiserver" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "api-machinery" + ], + "pr_body": "Cherry pick of #113133 on release-1.25.\r\n\r\n#113133: Fix DeleteCollection API decode DeleteOptions fail\r\n\r\nFor details on the cherry pick process, see the [cherry pick requests](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) page.\r\n\r\n```release-note\r\nkube-apiserver: bugfix DeleteCollection API fails if request body is non-empty\r\n```" + }, + "113420": { + "commit": "1c39f7cccd907ed717b35371dcf155d3b2ac694c", + "text": "kubelet: fix GetAllocatableCPUs method in cpumanager", + "markdown": "Kubelet: fix GetAllocatableCPUs method in cpumanager ([#113420](https://github.com/kubernetes/kubernetes/pull/113420), [@Garrybest](https://github.com/Garrybest)) [SIG Node]", + "author": "Garrybest", + "author_url": "https://github.com/Garrybest", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113420", + "pr_number": 113420, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "pr_body": "Cherry pick of #112913 on release-1.25.\r\n\r\n#112913: fix GetAllocatableCPUs in cpumanager\r\n\r\nFor details on the cherry pick process, see the [cherry pick requests](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) page.\r\n\r\n```release-note\r\nkubelet: fix GetAllocatableCPUs method in cpumanager\r\n```" + }, + "113515": { + "commit": "eb92f1bf8be051d5e2767412649d3027c965f200", + "text": "Pod logs using --timestamps are not broken up with timestamps anymore.", + "markdown": "Pod logs using --timestamps are not broken up with timestamps anymore. ([#113515](https://github.com/kubernetes/kubernetes/pull/113515), [@rphillips](https://github.com/rphillips)) [SIG Node]", + "author": "rphillips", + "author_url": "https://github.com/rphillips", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113515", + "pr_number": 113515, + "areas": [ + "kubelet" + ], + "kinds": [ + "bug" + ], + "sigs": [ + "node" + ], + "pr_body": "Cherry pick of #113481 on release-1.25.\r\n\r\n#113481: kubelet: fix pod log line corruption when using timestamps\r\n\r\nFor details on the cherry pick process, see the [cherry pick requests](https://git.k8s.io/community/contributors/devel/sig-release/cherry-picks.md) page.\r\n\r\n```release-note\r\nPod logs using --timestamps are not broken up with timestamps anymore.\r\n```" + }, + "113592": { + "commit": "88cd12bfa11ca0414127f5996708b1d2e83a8f02", + "text": "Kubernetes is now built with Go 1.19.3", + "markdown": "Kubernetes is now built with Go 1.19.3 ([#113592](https://github.com/kubernetes/kubernetes/pull/113592), [@xmudrii](https://github.com/xmudrii)) [SIG Release and Testing]", + "author": "xmudrii", + "author_url": "https://github.com/xmudrii", + "pr_url": "https://github.com/kubernetes/kubernetes/pull/113592", + "pr_number": 113592, + "areas": [ + "test", + "release-eng", + "dependency" + ], + "kinds": [ + "feature" + ], + "sigs": [ + "release", + "testing" + ], + "feature": true, + "duplicate": true, + "pr_body": "#### What type of PR is this?\r\n\r\n/kind feature\r\n/area dependency\r\n\r\n#### What this PR does / why we need it:\r\n\r\n- Bump kube-cross and go-runner images to Go 1.19.3 based ones\r\n- Bump test Makefile to Go 1.19.3\r\n- Bump default Go version for publishing bot to 1.19.3\r\n\r\n#### Which issue(s) this PR fixes:\r\n\r\nPart of https://github.com/kubernetes/release/issues/2726\r\n\r\n#### Does this PR introduce a user-facing change?\r\n```release-note\r\nKubernetes is now built with Go 1.19.3\r\n```\r\n\r\n#### Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:\r\n```docs\r\n\r\n```\r\n\r\ncc @kubernetes/release-engineering " + } +} \ No newline at end of file diff --git a/cmd/krel/cmd/testdata/validation-data/invalid-indent.yaml b/cmd/krel/cmd/testdata/validation-data/invalid-indent.yaml new file mode 100644 index 00000000000..5ea7828fd2a --- /dev/null +++ b/cmd/krel/cmd/testdata/validation-data/invalid-indent.yaml @@ -0,0 +1,10 @@ +pr: 126108 +releasenote: + text: |- + Reduced state change noise when volume expansion fails. Also mark certain failures as infeasible. + + ACTION REQUIRED: If you are using the `RecoverVolumeExpansionFailure` alpha feature gate + then after upgrading to this release, you need to update some objects. + For any existing PersistentVolumeClaimss with `status.allocatedResourceStatus` set to either + "ControllerResizeFailed" or "NodeResizeFailed", clear the `status.allocatedResourceStatus`. +pr_body: "" \ No newline at end of file diff --git a/cmd/krel/cmd/testdata/validation-data/invalid-multi-line.yaml b/cmd/krel/cmd/testdata/validation-data/invalid-multi-line.yaml new file mode 100644 index 00000000000..5c5e303322b --- /dev/null +++ b/cmd/krel/cmd/testdata/validation-data/invalid-multi-line.yaml @@ -0,0 +1,5 @@ +pr: 125163 +releasenote: + text: 'ACTION REQUIRED: The Dynamic Resource Allocation (DRA) driver's DaemonSet must be deployed + with a service account that enables writing ResourceSlice and reading ResourceClaim + objects.' \ No newline at end of file diff --git a/cmd/krel/cmd/testdata/validation-data/invalid-yaml-start.yaml b/cmd/krel/cmd/testdata/validation-data/invalid-yaml-start.yaml new file mode 100644 index 00000000000..767f9775357 --- /dev/null +++ b/cmd/krel/cmd/testdata/validation-data/invalid-yaml-start.yaml @@ -0,0 +1,3 @@ +pr: 125157 +releasenote: + text: `kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly. \ No newline at end of file diff --git a/cmd/krel/cmd/testdata/validation-data/missing-punctuation.yaml b/cmd/krel/cmd/testdata/validation-data/missing-punctuation.yaml new file mode 100644 index 00000000000..0af291b3d79 --- /dev/null +++ b/cmd/krel/cmd/testdata/validation-data/missing-punctuation.yaml @@ -0,0 +1,4 @@ +pr: 125157 +releasenote: + text: "`kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly" +pr_body: "" diff --git a/cmd/krel/cmd/testdata/validation-data/valid.yaml b/cmd/krel/cmd/testdata/validation-data/valid.yaml new file mode 100644 index 00000000000..f179bf2f800 --- /dev/null +++ b/cmd/krel/cmd/testdata/validation-data/valid.yaml @@ -0,0 +1,4 @@ +pr: 125157 +releasenote: + text: "`kubeadm`: The `NodeSwap` check that kubeadm performs during preflight, has a new warning to verify if swap has been configured correctly." +pr_body: "" diff --git a/cmd/krel/cmd/validate.go b/cmd/krel/cmd/validate.go new file mode 100644 index 00000000000..f21e8f7cc72 --- /dev/null +++ b/cmd/krel/cmd/validate.go @@ -0,0 +1,119 @@ +package cmd + +import ( + "fmt" + "os" + "path/filepath" + "regexp" + "strings" + + "github.com/spf13/cobra" + "k8s.io/release/pkg/notes" + "sigs.k8s.io/yaml" +) + +func init() { + // Add the validation subcommand to the root command + rootCmd.AddCommand(validateCmd) +} + +// validate represents the subcommand for `krel validate`. +var validateCmd = &cobra.Command{ + Use: "validate", + Short: "The subcommand for validating release notes for the Release Notes subteam of SIG Release", + Long: `krel validate + +The 'validate' subcommand of krel has been developed to: + +1. Check release notes maps for valid yaml. + +2. Check release notes maps for valid punctuation.`, + SilenceUsage: true, + SilenceErrors: true, + RunE: func(cmd *cobra.Command, args []string) error { + // Extract the release notes path from args + releaseNotesPath := args[0] + + // Run the PR creation function + return runValidateReleaseNotes(releaseNotesPath) + }, +} + +func runValidateReleaseNotes(releaseNotesPath string) (err error) { + // Check if the directory exists + if _, err := os.Stat(releaseNotesPath); os.IsNotExist(err) { + return fmt.Errorf("release notes path %s does not exist", releaseNotesPath) + } + + // Validate the YAML files in the directory + err = filepath.Walk(releaseNotesPath, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + // Only process YAML files + if filepath.Ext(path) == ".yaml" || filepath.Ext(path) == ".yml" { + fmt.Printf("Validating YAML file: %s\n", path) + + // Validate YAML + if err := ValidateYamlMap(path); err != nil { + return fmt.Errorf("YAML validation failed for %s: %v", path, err) + } + + // (Optional) You can add custom punctuation validation here + // For example, you could check for missing periods at the end of lines + + fmt.Printf("YAML file %s is valid.\n", path) + } + return nil + }) + + if err != nil { + return fmt.Errorf("failed to validate release notes: %v", err) + } + + fmt.Println("All release notes are valid.") + return nil +} + +// ValidateYamlMap reads a YAML map file, unmarshals it into a map, and then re-marshals it +// to validate the correctness of the content. +func ValidateYamlMap(filePath string) error { + // Read the YAML file + data, err := os.ReadFile(filePath) + if err != nil { + return fmt.Errorf("failed to read file %s: %w", filePath, err) + } + + // Unmarshal the YAML data into a map for manipulation and validation + var testMap notes.ReleaseNotesMap + if err := yaml.Unmarshal(data, &testMap); err != nil { + return fmt.Errorf("YAML unmarshal failed for %s:%w", filePath, err) + } + + // Check the map for valid punctuation in the "text" field + if err := validateTextFieldPunctuation(&testMap); err != nil { + return fmt.Errorf("punctuation check failed for file %s: %w", filePath, err) + } + + // Re-marshall the YAML to check if it can be successfully serialized again + _, err = yaml.Marshal(testMap) + if err != nil { + return fmt.Errorf("while re-marshaling map for file %s:%w", filePath, err) + } + + fmt.Printf("File %s is valid YAML.\n", filePath) + return nil +} + +// validateTextFieldPunctuation checks if the "text" field in a YAML map +// ends with valid punctuation (., !, ?). +func validateTextFieldPunctuation(data *notes.ReleaseNotesMap) error { + validPunctuation := regexp.MustCompile(`[.!?]$`) + + text := *data.ReleaseNote.Text + if !validPunctuation.MatchString(strings.TrimSpace(text)) { + return fmt.Errorf("the 'text' field does not end with valid punctuation: '%s'", text) + } + + return nil +} diff --git a/cmd/krel/cmd/validation_test.go b/cmd/krel/cmd/validation_test.go new file mode 100644 index 00000000000..3f58f832846 --- /dev/null +++ b/cmd/krel/cmd/validation_test.go @@ -0,0 +1,41 @@ +package cmd + +import ( + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestRunValidateReleaseNotes(t *testing.T) { + testDataPath := "testdata/validation-data" + + // Valid YAML returns no error + err := runValidateReleaseNotes(filepath.Join(testDataPath, "valid.yaml")) + assert.NoError(t, err, "Expected no error for valid YAML file") + + // Try a non-existent path + err = runValidateReleaseNotes("nonexistent/path") + assert.Error(t, err, "Expected error for non-existent path") + assert.Contains(t, err.Error(), "does not exist", "Error should be about non-existent path") + + // Missing punctuation YAML returns error + err = runValidateReleaseNotes(filepath.Join(testDataPath, "missing-punctuation.yaml")) + assert.Error(t, err, "Expected error for missing punctuation YAML file") + assert.Contains(t, err.Error(), "field does not end with valid punctuation", "Error should be about missing punctuation") + + // Try invalid yaml starting with "`" + err = runValidateReleaseNotes(filepath.Join(testDataPath, "invalid-yaml-start.yaml")) + assert.Error(t, err, "Expected error for invalid yaml") + assert.Contains(t, err.Error(), "validation failed for testdata/validation-data/invalid-yaml-start", "Error should be about invalid yaml") + + // Try invalid multi line yaml + err = runValidateReleaseNotes(filepath.Join(testDataPath, "invalid-multi-line.yaml")) + assert.Error(t, err, "Expected error for invalid yaml") + assert.Contains(t, err.Error(), "YAML validation failed for testdata/validation-data/invalid-multi-line.yaml", "Error should be about invalid yaml") + + // Try invalid indent + err = runValidateReleaseNotes(filepath.Join(testDataPath, "invalid-indent.yaml")) + assert.Error(t, err, "Expected error for invalid yaml") + assert.Contains(t, err.Error(), "YAML validation failed for testdata/validation-data/invalid-indent.yaml", "Error should be about invalid yaml") +}